Il piano \(\pi\) passante per \(P_0\) e parallelo ai vettori \({\textbf v}\) e \({\textbf w}\) (linearmente indipendenti e paralleli a \(\pi\)) è l'insieme dei punti \(P\) dello spazio tali che i vettori \(\overrightarrow{P_0P},{\textbf v},{\textbf w}\) siano complanari, ossia che \(\overrightarrow{P_0P}\) dipende linearmente dai vettori \(v,w\). Per tanto:
\(\overrightarrow{P_0P}=s{\textbf v}+t{\textbf w}\)
Equazione vettoriale del piano \(\pi\), con \({\textbf v}\) e \({\textbf w}\) vettori di giacitura di \(\pi\).
Dati
\(x = x_0 + sl_1 + tl_2\)
\(y = y_0 + sm_1 + tm_2\)
\(z = z_0 + sn_1 + tn_2\)
Se sono noti 3 punti non allineati dello spazio, si possono ricavare \({\textbf v}\) e \({\textbf w}\) (vettori di giacitura):
import sympy as sp
from typing import List
def equazioniParametrichePiano(P_0: sp.Matrix, v: sp.Matrix = None, w: sp.Matrix = None, P_1: sp.Matrix = None, P_2: sp.Matrix = None) -> List[sp.Expr]:
s,t = sp.symbols("s t")
def eq_parametriche_da_giacitura(_P_0, _v, _w):
x = _P_0[0,0] + s*_v[0,0] + t*_w[0,0]
y = _P_0[0,1] + s*_v[0,1] + t*_w[0,1]
z = _P_0[0,2] + s*_v[0,2] + t*_w[0,2]
return [x,y,z]
if v is not None and w is not None:
return eq_parametriche_da_giacitura(P_0, v, w)
elif P_1 is not None and P_2 is not None:
v = P_1 - P_0
w = P_2 - P_0
return eq_parametriche_da_giacitura(P_0, v, w)
else:
raise Exception("Fornire i vettori di giacitura o 3 punti del piano")
I vettori \({ v}=-{ i}-2{ j}+{ k}\) e \({ w}=3{ i}+{ j}\) sono vettori di giacitura linearmente indipendenti (va effettuata la verifica), il piano passante per \(P_0=(1,0,3)\) risulta essere: \(x = 1 -s + 3t\) \(y = -2s + t\) \(z = 3 + s\)
P_0 = sp.Matrix([[1,0,3]])
v = sp.Matrix([[-1,-2,1]])
w = sp.Matrix([[3,1,0]])
equazioniParametrichePiano(P_0, v=v, w=w)
[-s + 3*t + 1, -2*s + t, s + 3]
P_0 = sp.Matrix([[1,1,1]])
P_1 = sp.Matrix([[1,0,-2]])
P_2 = sp.Matrix([[0,3,-3]])
equazioniParametrichePiano(P_0, P_1=P_1, P_2=P_2)
[1 - t, -s + 2*t + 1, -3*s - 4*t + 1]