Entwickler-Ecke

Basistechnologien - Wie funktioniert RectangleF.Intersect()?


C# - Mo 15.09.14 00:12
Titel: Wie funktioniert RectangleF.Intersect()?
Hey Leute,

meine Frage steht eigentlich schon oben. Wie genau arbeitet die Methode RectangleF.Intersect, vor allem die Mathematik dahinter?
Ich würde das nämlich gerne erweitern unter Einbeziehung von anti parallelen Rechtecken, also dass z.B. das eine Rechteck um 20° gedreht ist.
Ich vermute, dass das recht kompliziert ist, aber wenn es einfach ist machts ja auch kein Spaß :mrgreen:

/// Nachtrag

Habe gerade die source file RectangleF.cs gefunden und dort nachgeschaut. Da hätte ich auch selbst drauf kommen können :autsch:. Aber wenn jetzt auch noch Winkel dazu mache, hab ich das Problem, dass ich ja kein Rechteck mehr habe sondern unter Umständen ein Dreieck oder Polygon.
Na das kann was werden :D

Achso und das ganze hat keinen bestimmten Grund. Ich könnte es hier und da einbauen aber hauptsächlich ist es eine Spielerei.


FinnO - Mo 15.09.14 07:10

Moin,

nimm dies. http://sourceforge.net/projects/polyclipping/

Ein Algorithmus um zu gucken, ob ein Punkt in einem (konvexen) Polygon liegt ist, von diesem Punkt einen Strahl in eine beliebige Richtung loszuschießen. Man zählt dann, wie oft dieser Strahl die Kanten des Polygons schneidet. Bei einer ungeraden Anzahl von Schnitten liegt dieser innerhalb, bei einer geraden Anzahl außerhalb.

Gruß
Finn