Jeg beregner den normale vektor til en plan akse + med + cz + d = 0
Ifølge bogen:
Den normale vektor N normaliseres ofte til enhedslængden, fordi ligningen i så fald
d = N ⋅Q + D
giver den underskrevne afstand fra planet til et vilkårligt punkt Q. Hvis d = 0, ligger punktet Q i planet. Hvis d> 0, siger vi, at punktet Q ligger på den positive side af planet, da Q ville være på den side, hvor den normale vektor peger.
Hvordan får man N (Normal vektor)? Tak
Svar
Fra MathWorld :
Givet planet
Så er den normale vektor
Den normale enhedsvektor n er givet af:
Derfor, for planet 5x+2y+3z-1=0
,
Den normale vektor N er
N = [5,2,3]
Størrelsen | N | er
| N | = sqrt (5 ^ 2 + 2 ^ 2 + 3 ^ 2)
| N | = 6.1644
Den normale enhedsvektor n er derfor ca.:
n = N / | N |
n = [0.8111, 0.3244, 0.4866]
som du kan kontrollere ved at måle længden af n .
Kode:
import math def mag(V): return math.sqrt(sum([x*x for x in V])) def n(V): v_m = mag(V) return [ vi/v_m for vi in V]
I en interaktiv pythonskal:
>>> N = [5,2,3] >>> mag(N) 6.164414002968976 >>> n(N) [0.8111071056538127, 0.3244428422615251, 0.48666426339228763] >>> mag(n(N)) 1.0