Das Kreuzprodukt misst den Grad der Rechtwinkligkeit zweier Vektoren. Stellen Sie sich vor, jede Kante Ihres Polygons ist ein Vektor in der xy-Ebene eines dreidimensionalen (3-D) xyz-Raums. Dann ist das Kreuzprodukt zweier aufeinanderfolgender Kanten ein Vektor in z-Richtung (positive z-Richtung, wenn das zweite Segment im Uhrzeigersinn ist, minus z-Richtung, wenn es gegen den Uhrzeigersinn ist). Die Größe dieses Vektors ist proportional zum Sinus des Winkels zwischen den beiden ursprünglichen Kanten, sodass er ein Maximum erreicht, wenn sie senkrecht stehen, und sich verjüngt, um zu verschwinden, wenn die Kanten kollinear (parallel) sind.
Berechnen Sie also für jeden Scheitelpunkt (Punkt) des Polygons die Kreuzproduktgröße der beiden benachbarten Kanten:
Using your data:
point[0] = (5, 0)
point[1] = (6, 4)
point[2] = (4, 5)
point[3] = (1, 5)
point[4] = (1, 0)
Beschriften Sie die Kanten nacheinander, so wie
edgeA
das Segment von point0
bis point1
und
edgeB
zwischen point1
bis point2
...
edgeE
zwischen point4
und ist point0
.
Dann liegt Vertex A ( point0
) zwischen
edgeE
[Von point4
bis point0
]
edgeA
[Von point0
bis `Punkt1 '
Diese beiden Kanten sind selbst Vektoren, deren x- und y-Koordinaten durch Subtrahieren der Koordinaten ihrer Start- und Endpunkte bestimmt werden können:
edgeE
= point0
- point4
= (1, 0) - (5, 0)
= (-4, 0)
und
edgeA
= point1
- point0
= (6, 4) - (1, 0)
= (5, 4)
und
Und das Kreuzprodukt der beiden angrenzenden Kanten berechnet die Determinante der folgenden Matrix verwendet, die , indem sie die Koordinaten der beiden Vektoren unter den Symbolen aufgebaut ist , die die drei Koordinatenachsen ( i
, j
, & k
). Die dritte (null) -bewertige Koordinate ist vorhanden, da das Kreuzproduktkonzept ein 3D-Konstrukt ist. Daher erweitern wir diese 2D-Vektoren in 3D, um das Kreuzprodukt anzuwenden:
i j k
-4 0 0
1 4 0
Da alle Kreuzprodukte einen Vektor senkrecht zur Ebene zweier zu multiplizierender Vektoren erzeugen, hat die Determinante der obigen Matrix nur eine k
(oder z-Achsen-) Komponente.
Die Formel zur Berechnung der Größe der k
Komponente oder der Z-Achse lautet
a1*b2 - a2*b1 = -4* 4 - 0* 1
= -16
Die Größe dieses Wertes ( -16
) ist ein Maß für den Sinus des Winkels zwischen den beiden ursprünglichen Vektoren, multipliziert mit dem Produkt der Größen der beiden Vektoren.
Eigentlich ist eine andere Formel für seinen Wert
A X B (Cross Product) = |A| * |B| * sin(AB)
.
Um auf ein Maß des Winkels zurückzukommen, müssen Sie diesen Wert ( -16
) durch das Produkt der Größen der beiden Vektoren dividieren .
|A| * |B|
= 4 * Sqrt(17)
=16.4924...
Also das Maß der Sünde (AB) = -16 / 16.4924
=-.97014...
Dies ist ein Maß dafür, ob und um wie viel sich das nächste Segment nach dem Scheitelpunkt nach links oder rechts gebogen hat. Es ist nicht erforderlich, Arc-Sinus zu nehmen. Wir werden uns nur um seine Größe und natürlich um sein Vorzeichen (positiv oder negativ) kümmern!
Führen Sie dies für jeden der anderen 4 Punkte um den geschlossenen Pfad aus und addieren Sie die Werte aus dieser Berechnung an jedem Scheitelpunkt.
Wenn die endgültige Summe positiv ist, sind Sie im Uhrzeigersinn, negativ und gegen den Uhrzeigersinn gegangen.