Jag beräknar den normala vektorn till en plan ax + med + cz + d = 0

Enligt boken:

Den normala vektorn N normaliseras ofta till enhetslängden eftersom i så fall ekvationen

d = N ⋅Q + D 

ger det signerade avståndet från planet till ett godtyckligt punkt Q. Om d = 0 ligger punkten Q i planet. Om d> 0 säger vi att punkten Q ligger på den positiva sidan av planet eftersom Q skulle vara på den sida där den normala vektorn pekar.

Hur får man N (normalvektorn)? Tack

Svar

Från MathWorld :

Med tanke på planet

ange bildbeskrivning här

Då är den normala vektorn

ange bildbeskrivning här

Den normala enhetsvektorn n ges av:

ange bildbeskrivning här

Därför för planet 5x+2y+3z-1=0,

Den normala vektorn N är

N = [5,2,3]

Storleken | N | är

| N | = sqrt (5 ^ 2 + 2 ^ 2 + 3 ^ 2)

| N | = 6.1644

Den normala enhetsvektorn n är därför ungefär:

n = N / | N |

n = [0.8111, 0.3244, 0.4866]

som du kan kontrollera genom att mäta längden på n .

Kod:

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 ett interaktivt pythonskal:

>>> N = [5,2,3] >>> mag(N) 6.164414002968976 >>> n(N) [0.8111071056538127, 0.3244428422615251, 0.48666426339228763] >>> mag(n(N)) 1.0 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *