Déterminez de quel côté de la ligne se trouve le point
Pour déterminer la position d'un point par rapport à une ligne, il faut établir un repère. Ce cadre consiste à sélectionner deux points (A et B) sur une ligne et à former une ligne imaginaire entre eux. Le but est de diviser l’ensemble de points donné en deux ensembles distincts : les points situés à gauche de la ligne et les points situés à droite de la ligne.
Dans un premier temps, essayez de déterminer l'emplacement du point Z en utilisant l'angle entre les vecteurs A-Z-B. Supposons que les angles inférieurs à 180 degrés se trouvent à droite d’une ligne, tandis que les angles supérieurs à 180 degrés se trouvent à gauche. Cependant, en raison de limitations mathématiques, cette approche conduit à des résultats incohérents, car l'angle calculé est toujours inférieur à 180 degrés.
Pour surmonter cette limitation, une méthode plus fiable consiste à utiliser le produit vectoriel. Étant donné une ligne A--B et le point C, vous pouvez utiliser la formule suivante pour déterminer l'emplacement du point C :
<code class="language-javascript">isLeft(a, b, c) { return (b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x) > 0; }</code>
Si le point est du côté droit de la droite, la valeur calculée par cette formule est supérieure à 0 ; si le point est du côté gauche de la droite, la valeur est inférieure à 0 ; sont colinéaires (c'est-à-dire que le point C est sur la droite A--B), la valeur est 0.
Pour une ligne horizontale, vous pouvez modifier la formule pour déterminer si le point C est au dessus ou en dessous de la ligne :
<code class="language-javascript">isAbove(a, b, c) { return (c.y - a.y) > 0; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!