El producto cruzado mide el grado de perpendicularidad de dos vectores. Imagine que cada borde de su polígono es un vector en el plano xy de un espacio tridimensional (3-D) xyz. Entonces, el producto cruzado de dos aristas sucesivas es un vector en la dirección z, (dirección z positiva si el segundo segmento es en sentido horario, menos dirección z si es en sentido antihorario). La magnitud de este vector es proporcional al seno del ángulo entre los dos bordes originales, por lo que alcanza un máximo cuando son perpendiculares y disminuye gradualmente para desaparecer cuando los bordes son colineales (paralelos).
Entonces, para cada vértice (punto) del polígono, calcule la magnitud del producto cruzado de los dos bordes adyacentes:
Using your data:
point[0] = (5, 0)
point[1] = (6, 4)
point[2] = (4, 5)
point[3] = (1, 5)
point[4] = (1, 0)
Por lo tanto, etiquete los bordes consecutivamente como
edgeA
es el segmento de point0
a point1
y
edgeB
entre point1
a point2
...
edgeE
está entre point4
y point0
.
Entonces Vertex A ( point0
) está entre
edgeE
[De point4
a point0
]
edgeA
[De point0
a `punto1 '
Estos dos bordes son en sí mismos vectores, cuyas coordenadas x e y se pueden determinar restando las coordenadas de sus puntos inicial y final:
edgeE
= point0
- point4
= (1, 0) - (5, 0)
= (-4, 0)
y
edgeA
= point1
- point0
= (6, 4) - (1, 0)
= (5, 4)
y
Y el producto cruzado de estos dos bordes contiguos se calcula utilizando el determinante de la matriz siguiente, que se construye poniendo las coordenadas de los dos vectores por debajo de los símbolos que representan los tres ejes de coordenadas ( i
, j
, y k
). La tercera coordenada (cero) está ahí porque el concepto de producto cruzado es una construcción tridimensional, por lo que ampliamos estos vectores 2-D a 3-D para aplicar el producto cruzado:
i j k
-4 0 0
1 4 0
Dado que todos los productos cruzados producen un vector perpendicular al plano de dos vectores que se multiplican, el determinante de la matriz anterior solo tiene un k
componente (o eje z).
La fórmula para calcular la magnitud del k
componente del eje z es
a1*b2 - a2*b1 = -4* 4 - 0* 1
= -16
La magnitud de este valor ( -16
), es una medida del seno del ángulo entre los 2 vectores originales, multiplicado por el producto de las magnitudes de los 2 vectores.
En realidad, otra fórmula para su valor es
A X B (Cross Product) = |A| * |B| * sin(AB)
.
Entonces, para volver solo a una medida del ángulo, necesita dividir este valor, ( -16
), por el producto de las magnitudes de los dos vectores.
|A| * |B|
= 4 * Sqrt(17)
=16.4924...
Entonces la medida del pecado (AB) = -16 / 16.4924
=-.97014...
Esta es una medida de si el siguiente segmento después del vértice se ha doblado hacia la izquierda o hacia la derecha, y por cuánto. No hay necesidad de tomar arco-seno. ¡Lo único que nos importará es su magnitud y, por supuesto, su signo (positivo o negativo)!
Haga esto para cada uno de los otros 4 puntos alrededor de la ruta cerrada, y sume los valores de este cálculo en cada vértice.
Si la suma final es positiva, fue en sentido horario, negativo, en sentido antihorario.