E' sufficiente considerare un punto \(P_0\) per cui la retta \(r\) passa e un vettore \({\textbf v} \ne {\textbf 0}\) (vettore direttore della retta) parallelo ad essa. La retta è il luogo geometrico dei punti \(P\) dello spazio che soddisfano: \(\overrightarrow{P_0P} // {\textbf v}\). Altresì soddissfa l'equazione vettoriale della retta \(r\):
\(P = P_0 + t{\textbf v} \quad con \quad t \in \mathbb{R}\)
Fissato un sist. di rif. ortonormale \(RC(O, {\textbf i},{\textbf j},{\textbf k})\) con \(P_0(x_0,y_0,z_0)\) un punto della retta \(r\) e \({\textbf v}=l{\textbf i}+m{\textbf j}+n{\textbf k}\) vettore direttore; un generico punto \(P(x,y,z)\): \(\overrightarrow{P_0P}=P-P_0=(x-x_0){\textbf i}+(y-y_0){\textbf j}+(z-z_0){\textbf k}\) che, dato che \(\overrightarrow{P_0P} = t{\textbf v}\), diventa l'equazione: \((x-x_0){\textbf i}+(y-y_0){\textbf j}+(z-z_0){\textbf k}=tl{\textbf i} + tm{\textbf j} + tn{\textbf k}\). Due vettori sono uguali se coincidono componente per componente, per cui l'uguaglianza si traduce nel sistema lineare:
\(x-x_0 = tl\)
\(y-y_0 = tm\)
\(z-z_0 = tn\)
quindi
\(x = x_0 + tl\)
\(y = y_0 + tm\)
\(z = z_0 + tn\)
Questo sistema è composto dalle equazioni parametriche della retta \(r\) dove \((x_0,y_0,z_0)\) sono coordiante di un punto della retta, e \((l,m,n)\) sono le componenti del vettore direttore. NB: si applica anche nel contesto di un rif. cart. affine.
Sono fornite le coordinate cartesiane di un punto della retta \(P_0(x_0,y_0,z_0)\) e le componenti di un vettore parallelo a \(r\): \({\textbf v}=l{\textbf i}+m{\textbf j}+n{\textbf k}\). Le equazioni parametriche si ottengono compenendo il sistema:
\(x = x_0 + tl\)
\(y = y_0 + tm\)
\(z = z_0 + tn\)
Dati due punti appartenenti alla retta \(r\): \(P_0(x_0,y_0,z_0)\) e \(P_1(x_1,y_1,z_1)\) è sufficiente considerare come vettore parallelo \({\textbf v}=\overrightarrow{P_0P_1}\) e ricavare il solito sistema:
\(x = x_0 + tl\)
\(y = y_0 + tm\)
\(z = z_0 + tn\)
Dove
\({\textbf v}=\overrightarrow{P_0P_1} = P_1-P_0 = (x_1-x_0, y_1-y_0, z_1-z_0) = (l,m,n)\)
import sympy as sp
from typing import List
def equazioniParametricheRetta(P_0:sp.Matrix, v: sp.Matrix=None, P_1:sp.Matrix=None) -> List[sp.Expr]:
t = sp.symbols("t")
if v is not None and P_0 is not None:
return [
P_0[0,0] + t*v[0,0],
P_0[0,1] + t*v[0,1],
P_0[0,2] + t*v[0,2]
]
elif P_1 is not None:
v = P_1 - P_0
return [
P_0[0,0] + t*v[0,0],
P_0[0,1] + t*v[0,1],
P_0[0,2] + t*v[0,2]
]
else:
raise Exception("Parametri per trovare l'equazione parametrica della retta non validi")
v = sp.Matrix([[2,-3,1]])
P_0 = sp.Matrix([[1,2,3]])
equazioniParametricheRetta(P_0, v=v)
[2*t + 1, 2 - 3*t, t + 3]
P_0 = sp.Matrix([[-1,0,2]])
P_1 = sp.Matrix([[2,3,1]])
equazioniParametricheRetta(P_0, P_1=P_1)
[3*t - 1, 3*t, 2 - t]