Intersection de segment de ligne
Donnez les coordonnées de deux points de plusieurs segments de ligne et indiquez le nombre de points d'intersection des deux segments de ligne.
Condition 1: Le premier segment de ligne est complètement au-dessus (en dessous) du deuxième segment de ligne, on peut juger qu'il n'y a pas d'intersection.
Condition 2: Si AB et CD se croisent, alors A et B doivent être des deux côtés du CD, donc (CD × CA) (CD × CB) <0.
C et D doivent être des deux côtés de AB, donc (AC × AB) (AD × AB) <0.
Supposons A (x1, y1), B (x2, y2), C (x3, y3), D (x4, y4).
CA = (x1-x3, y1-y3), CB = (x2-x3, y2-y3).
CD = (x4-x3, y4-y3).
AC = (x3-x1, y3-y1), AD = (x4-x1, y4-y1).
AB = (x2-x1, y2-y1).
Donc, (CD × CA) (CD × CB) = ((x4-x3) (y1-y3) - (x1-x3) (y4-y3)) ((x4-x3) (y2-y3) - (x2 -x3) (y4-y3))> 0 tient,
ou (AC × AB) (AD × AB) = ((x3-x1) (y2-y1) - (x2-x1) (y3-y1)) (( x4-x1) (y2-y1) - (x2-x1) (y4-y1))> 0 est vrai, il
n'y a pas d'intersection.
Toutes les autres situations ont des intersections.
Multiplication de points:
x = (a1, a2,…, an) , y = (b1, b2,…, bn)
x · y = a1 b1 + …… + an bn.
Produit croisé:
Soit les coordonnées des deux vecteurs u (u1, u2, u3), v (v1, v2, v3).
Alors u × v = (u2 v3-u3 v2) - (u1 v3-u3 v1) + (u1 v2-u2 v1).
Formule de produit croisé vectoriel bidimensionnel: x1 y2-x2 y1.
Obtenir
la relation horaire et inverse entre les deux vecteurs: si l1 × l2> 0, alors l1 est dans le sens horaire de l2;
si l1 × l2 <0, alors l1 est dans le sens antihoraire de l2;
si l1 × l2 = 0, alors l1 et l2 sont colinéaires (peuvent être dans le même sens, ou inversés);