Intersection ligne-ligne - Line–line intersection

L'intersection des lignes.

En géométrie euclidienne , l' intersection d'une ligne et d'une ligne peut être l' ensemble vide , un point ou une ligne. Distinguer ces cas et trouver le point d'intersection sont utiles, par exemple, dans l'infographie , la planification de mouvement et la détection de collision .

Dans la géométrie euclidienne tridimensionnelle , si deux lignes ne sont pas dans le même plan, elles sont appelées lignes obliques et n'ont pas de point d'intersection. S'ils sont dans le même plan, il y a trois possibilités : s'ils coïncident (ne sont pas des droites distinctes) ils ont une infinité de points en commun (c'est-à-dire tous les points de l'un d'eux) ; s'ils sont distincts mais ont la même pente, ils sont dits parallèles et n'ont pas de points communs ; sinon, ils ont un seul point d'intersection.

Les caractéristiques distinctives de la géométrie non euclidienne sont le nombre et les emplacements des intersections possibles entre deux lignes et le nombre de lignes possibles sans intersection (lignes parallèles) avec une ligne donnée.

Formules

Une condition nécessaire pour que deux lignes se coupent est qu'elles soient dans le même plan, c'est-à-dire qu'elles ne soient pas des lignes obliques. La satisfaction de cette condition équivaut au tétraèdre dont les sommets à deux des points d'une ligne et deux des points de l'autre ligne sont dégénérés dans le sens d'avoir un volume nul . Pour la forme algébrique de cette condition, voir Skew lines § Testing for skewness .

Étant donné deux points sur chaque ligne

Nous considérons d'abord l'intersection de deux lignes et dans un espace à 2 dimensions, la ligne étant définie par deux points distincts et , et la ligne étant définie par deux points distincts et .

L'intersection de la ligne et peut être définie à l'aide de déterminants .

Les déterminants peuvent s'écrire sous la forme :

où le dénominateur est :

Lorsque les deux droites sont parallèles ou coïncidentes, le dénominateur est zéro. Si les lignes sont presque parallèles, alors une solution informatique peut rencontrer des problèmes numériques mettant en œuvre la solution décrite ci-dessus : la reconnaissance de cette condition peut nécessiter un test approximatif dans une application pratique. Une autre approche pourrait consister à faire pivoter les segments de ligne de sorte que l'un d'eux soit horizontal, d'où la solution de la forme paramétrique tournée de la deuxième ligne est facilement obtenue. Une discussion approfondie des cas particuliers est nécessaire (lignes parallèles/lignes coïncidentes, intervalles chevauchants/non chevauchants).

Étant donné deux points sur chaque segment de ligne

Notez que le point d'intersection ci-dessus concerne les lignes infiniment longues définies par les points, plutôt que les segments de ligne entre les points, et peut produire un point d'intersection non contenu dans l'un des deux segments de ligne. Afin de trouver la position de l'intersection par rapport aux segments de droite, on peut définir des droites et en termes de paramètres de Bézier du premier degré :

(où t et u sont des nombres réels). Le point d'intersection des lignes se trouve avec l'une des valeurs suivantes de t ou u , où

et

avec:

Il y aura une intersection si 0,0  t  ≤ 1,0 et 0,0  u  1,0. Le point d'intersection se situe dans le premier segment de ligne si 0,0  t  1,0, et il se trouve dans le deuxième segment de ligne si 0,0  u  1,0. Ces inégalités peuvent être testées sans avoir besoin de division, ce qui permet de déterminer rapidement l'existence de toute intersection de segment de ligne avant de calculer son point exact.

Étant donné deux équations de droite

Les coordonnées et du point d'intersection de deux lignes non verticales peuvent être facilement trouvées en utilisant les substitutions et réarrangements suivants.

Supposons que deux lignes ont les équations et où et sont les pentes (gradients) des lignes et où et sont les ordonnées à l' origine des lignes. Au point d'intersection des deux droites (si c'est le cas), les deux coordonnées seront les mêmes, d'où l'égalité suivante :

Nous pouvons réarranger cette expression afin d'extraire la valeur de ,

et donc,

Pour trouver la coordonnée y , tout ce que nous avons à faire est de substituer la valeur de x dans l'une des deux équations linéaires, par exemple, dans la première :

Le point d'intersection est donc

Notez que si a = b alors les deux droites sont parallèles . Si cd ainsi, les lignes sont différentes et il n'y a pas d' intersection, sinon les deux lignes sont identiques.

Utiliser des coordonnées homogènes

En utilisant des coordonnées homogènes , le point d'intersection de deux lignes définies implicitement peut être déterminé assez facilement. En 2D, chaque point peut être défini comme une projection d'un point 3D, donné comme le triple ordonné . Le mappage des coordonnées 3D aux coordonnées 2D est . Nous pouvons convertir des points 2D en coordonnées homogènes en les définissant comme .

Supposons que nous voulions trouver l'intersection de deux lignes infinies dans un espace à 2 dimensions, défini par et . Nous pouvons représenter ces deux lignes en coordonnées linéaires comme et ,

L'intersection de deux droites est alors simplement donnée par,

Si les lignes ne se croisent pas.

Plus de deux lignes

L'intersection de deux lignes peut être généralisée pour impliquer des lignes supplémentaires. L'existence et l'expression du problème d'intersection à n lignes sont les suivantes.

En deux dimensions

En deux dimensions, plus de deux lignes ne se coupent presque certainement pas en un seul point. Pour déterminer si c'est le cas et, si c'est le cas, pour trouver le point d'intersection, écrivez la i- ième équation ( i = 1, …, n ) comme et empilez ces équations sous forme de matrice comme

où la i -ième rangée de la matrice n × 2 A est , w est le vecteur 2 × 1 ( x, y ) T , et le i -ième élément du vecteur colonne b est b i . Si A a des colonnes indépendantes, son rang est 2. Alors si et seulement si le rang de la matrice augmentée [ A | b ] vaut aussi 2, il existe une solution de l'équation matricielle et donc un point d'intersection des n droites. Le point d'intersection, s'il existe, est donné par

où est l' inverse généralisé de Moore-Penrose de (qui a la forme indiquée car A a un rang de colonne complet). Alternativement, la solution peut être trouvée en résolvant conjointement deux équations indépendantes. Mais si le rang de A n'est que de 1, alors si le rang de la matrice augmentée est de 2, il n'y a pas de solution mais si son rang est de 1, alors toutes les lignes coïncident les unes avec les autres.

En trois dimensions

L'approche ci-dessus peut être facilement étendue à trois dimensions. Dans trois dimensions ou plus, même deux lignes ne se coupent presque certainement pas ; les paires de lignes non parallèles qui ne se coupent pas sont appelées lignes obliques . Mais si une intersection existe, elle peut être trouvée, comme suit.

En trois dimensions une ligne est représentée par l'intersection de deux plans, dont chacun a une équation de la forme Ainsi un ensemble de n lignes peut être représenté par 2 n équations dans le vecteur de coordonnées tridimensionnel w = ( x , y , z ) T :

où maintenant A vaut 2 n × 3 et b vaut 2 n × 1. Comme précédemment, il existe un point d'intersection unique si et seulement si A a un rang de colonne complet et la matrice augmentée [ A | b ] ne le fait pas, et l'unique intersection si elle existe est donnée par

Points les plus proches des lignes obliques

Dans deux dimensions ou plus, nous pouvons généralement trouver un point qui est mutuellement le plus proche de deux ou plusieurs lignes au sens des moindres carrés .

En deux dimensions

Dans le cas à deux dimensions, d'une part, représente la ligne i à un point, sur la ligne et une unité de vecteur normal , perpendiculaire à cette ligne. Autrement dit, si et sont des points sur la ligne 1, alors laissez et laissez

qui est le vecteur unitaire le long de la ligne, tourné de 90 degrés.

Notez que la distance d'un point, x à la ligne est donnée par

Et donc la distance au carré d'un point, x , à une ligne est

La somme des carrés des distances à plusieurs lignes est la fonction de coût :

Cela peut être réorganisé :

Pour trouver le minimum, nous différencions par rapport à x et fixons le résultat égal au vecteur zéro :

donc

et donc

En plus de deux dimensions

Bien qu'il ne soit pas bien défini dans plus de deux dimensions, cela peut être généralisé à n'importe quel nombre de dimensions en notant qu'il s'agit simplement de la matrice (symétrique) avec toutes les valeurs propres unité à l'exception d'une valeur propre nulle dans la direction le long de la ligne fournissant une semi - norme sur la distance entre et un autre point donnant la distance à la ligne. Dans n'importe quel nombre de dimensions, si est un vecteur unitaire le long de la i- ème ligne, alors

devient

I est la matrice identité, et donc

Dérivation générale

Afin de trouver le point d'intersection d'un ensemble de lignes, nous calculons le point à distance minimale d'elles. Chaque ligne est définie par une origine et un vecteur directeur unitaire, . Le carré de la distance d'un point à l'une des droites est donné par Pythagore :

Où : est la projection de sur la ligne . La somme des distances au carré à toutes les lignes est :

Pour minimiser cette expression, nous la différencions par rapport à .

Il en résulte:

Où est la matrice d'identité. Il s'agit d'une matrice , de solution , où est le pseudo-inverse de .

Voir également

Les références

  1. ^ "Weisstein, Eric W. "Intersection ligne-ligne." De MathWorld" . Une ressource Web Wolfram . Récupéré le 2008-01-10 .
  2. ^ Antonio, Franklin (1992). "Chapitre IV.6 : Intersection plus rapide du segment de ligne". Dans Kirk, David (éd.). Gemmes graphiques III . Academic Press, Inc. pp. 199-202. ISBN 0-12-059756-X.
  3. ^ "Coordonnées homogènes" . robotique.stanford.edu . Récupéré le 2015-08-18 .
  4. ^ Traa, Johannes. « Intersection des lignes aux moindres carrés » (PDF) . Récupéré le 30 août 2018 .

Liens externes