Ik bereken de normaalvector naar een vlakke ax + door + cz + d = 0

Volgens het boek:

De normaalvector N wordt vaak genormaliseerd naar de eenheidslengte omdat in dat geval de vergelijking

d = N ⋅Q + D 

de afstand met teken geeft van het vlak tot een willekeurige punt Q. Als d = 0, dan ligt het punt Q in het vlak. Als d> 0, zeggen we dat het punt Q aan de positieve kant van het vlak ligt, aangezien Q aan de kant zou zijn waarin de normaalvector wijst.

Hoe krijg je de N (normaalvector)? Bedankt

Antwoord

Van MathWorld :

Gegeven het vliegtuig

voer hier de afbeeldingbeschrijving in

Dan is de normale vector

voer de beschrijving van de afbeelding hier in

De normale eenheidsvector n wordt gegeven door:

voer hier de afbeeldingbeschrijving in

Daarom voor het vlak 5x+2y+3z-1=0,

De normale vector N is

N = [5,2,3]

De grootte | N | is

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

| N | = 6.1644

De normale eenheidsvector n is daarom ongeveer:

n = N / | N |

n = [0,8111, 0,3244, 0,4866]

die u kunt controleren door de lengte van n te meten.

Code:

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] 

In een interactieve python-shell:

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *