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
edgeAes el segmento de point0a point1y
edgeBentre point1a point2
...
edgeEestá entre point4y point0.
Entonces Vertex A ( point0) está entre
edgeE[De point4a point0]
edgeA[De point0a `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 kcomponente (o eje z).
La fórmula para calcular la magnitud del kcomponente 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.