C# Berechung der Fläche zweier geschnittenen Rechtecke?

Beispiel - (programmieren, C Sharp)

3 Antworten

Es gelten die allgemeinen Regeln für die Berechnung einer Fläche:

Länge mal Höhe

Für die Länge musst Du nur die Differenz bilden, also den Absolutwert der Differenz der beiden X-Koordinaten, wobei natürlich die richtigen X-Koordinaten zu nehmen sind (das größere X des Rechtecks mit der kleinsten X-Koordinate - also des linken Rechtecks, sowie das kleiner X des Rechtecks mit der größten X-Koordinate - also des rechten Rechtecks).

Für die Höhe dasselbe, den Absolutwert der Differenz der beiden Y-Koordinaten. Auch hier wieder die richtigen Y-Koordinaten: Das größere Y des Rechtecks mit der kleinsten Y-Koordinate (des oberen Rechtecks) und das kleinere Y des Rechtecks mit der größten Y-Koordinate (des unteren Rechtecks).

Mit diesen Regeln sollte es einfach sein.

Tipp: Bilde Funktionen für den Absolutwert, die Differenz, für die Abfrage der größten und kleinsten Werte sowie der größeren und der kleineren Werte. Dann stöpsele das alles Zusammen und fertig ist das Programm. Gilt übrigens nicht nur für C#, sondern auch für jede andere Sprache (inkl. Assembler, ggf. aber nicht für Malborge :-)

Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich
Dzemal 
Fragesteller
 20.03.2017, 09:25

Danke! Bin fertig.

1
var schnittrechteck = rechteck1.Intersect(rechteck2);
var schnittflaeche = schnittrechteck.Size.Width * schnittrechteck.Size.Height;
Woher ich das weiß:Berufserfahrung – Software-Entwickler

x1 < x2 + w2 && y1 < y2 + h2 && x1 + w1 > x2 && y1 + h1 > y2