Comment trouver le point d'intersection entre deux droites ?

Published: 21 juin 2019

DMCA.com Protection Status

Exemple de comment calculer le point d'intersection entre deux droites:

Résolution mathématiques

Soit deux droites d'équation:

\begin{equation}
\left\{ \begin{array}{c}
y = m_1 * x + b_1 \\
y = m_2 * x + b_2
\end{array}\right.
\end{equation}

où $m$ et $b$ sont le coefficient directeur et l'ordonnée à l'origine respectivement.

On suppose que $m_1 \neq m_2$ sinon les droites sont parallèles et il n'y a donc pas de point d'intersection.

Un point $(x_i, y_i)$ appartient aux deux droites si il vérifie les deux équations des deux droites ci-dessus, soit:

\begin{equation}
\left\{ \begin{array}{c}
y_i = m_1 * x_i + b_1 \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

Cherchons à écrire $x_i$ et $y_i$ en fonction de $m_1$, $m_2$, $b_1$ et $b_2$.

\begin{equation}
\left\{ \begin{array}{c}
m_2 * x_i + b_2 = m_1 * x_i + b_1 \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

\begin{equation}
\left\{ \begin{array}{c}
(m_2 - m_1 ) * x_i = b_1 - b_2 \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

\begin{equation}
\left\{ \begin{array}{c}
x_i = ( b_1 - b_2) / (m_2 - m_1 ) \\
y_i = m_2 * x_i + b_2
\end{array}\right.
\end{equation}

\begin{equation}
\boxed{
\left\{ \begin{array}{c}
x_i = ( b_1 - b_2) / (m_2 - m_1 ) \\
y_i = m_2 * ( b_1 - b_2) / (m_2 - m_1 ) + b_2
\end{array}\right.
}
\end{equation}

Exemple avec les droites suivantes:

\begin{equation}
\left\{ \begin{array}{c}
y = x + 2 \\
y = 2 x + 4
\end{array}\right.
\end{equation}

En appliquant les relations (6):

\begin{equation}
\left\{ \begin{array}{c}
x_i = ( 2 - 4) / (2 - 1 ) \\
y_i = 2 * ( 2 - 4) / (2 - 1 ) + 4
\end{array}\right.
\end{equation}

le point d'intersection est $(x_i, y_i)$ = (-2, 0)

Ecrire un code en python

Exemple d'implémentation avec la language python:

Tracer les droites:

import matplotlib.pyplot as plt
import numpy as np

m1, b1 = 1.0, 2.0 # slope & intercept (line 1)
m2, b2 = 4.0, -3.0 # slope & intercept (line 2)

x = np.linspace(-10,10,500)

plt.plot(x,x*m1+b1)
plt.plot(x,x*m2+b2)

plt.xlim(-2,8)
plt.ylim(-2,8)

plt.title('How to find the intersection of two straight lines ?', fontsize=8)

plt.grid(linestyle='dotted')

plt.savefig("two_straight_lines_intersection_point_01.png", bbox_inches='tight')

Comment trouver le point d'intersection entre deux droites ?
Comment trouver le point d'intersection entre deux droites ?

Trouver le point d'intersection:

xi = (b1-b2) / (m2-m1)
yi = m1 * xi + b1

print('(xi,yi)',xi,yi)

donne ici (xi,yi) 1.6666666666666667 3.666666666666667:

Tracer le point d'intersection:

plt.scatter(xi,yi, color='black' )

plt.savefig("two_straight_lines_intersection_point_02.png", bbox_inches='tight')

Comment trouver le point d'intersection entre deux droites ?
Comment trouver le point d'intersection entre deux droites ?

Références

Image

of