Exemple de comment calculer le point d'intersection entre deux droites:
Table des matières
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')
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')
Références
Liens | Site |
---|---|
Point d'intersection | lexique.netmath.ca |
Déterminer, s'il existe, le point d'intersection de 2 droites s'il existe. | calculis.net |
Coordonnées du point d'intersection de deux droites | ilemaths.net |