Obliczam wektor normalny do płaszczyzny ax + przez + cz + d = 0

Według książki:

Normalny wektor N jest często znormalizowany do długości jednostki, ponieważ w tym przypadku równanie

d = N ⋅Q + D 

podaje odległość od płaszczyzny ze znakiem do dowolnej punkt Q. Jeśli d = 0, to punkt Q leży na płaszczyźnie. Jeśli d> 0, mówimy, że punkt Q leży po dodatniej stronie płaszczyzny, ponieważ Q byłoby po stronie, na którą wskazuje wektor normalny.

Jak uzyskać N (wektor normalny)? Dziękuję

Odpowiedź

Od MathWorld :

Biorąc pod uwagę samolot

tutaj wprowadź opis obrazu

Wtedy wektor normalny to

tutaj wprowadź opis obrazu

Normalny wektor jednostkowy n jest określane przez:

tutaj wprowadź opis obrazu

Dlatego dla samolotu 5x+2y+3z-1=0,

Normalny wektor N to

N = [5,2,3]

Wielkość | N | wynosi

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

| N | = 6.1644

Normalny wektor jednostkowy n jest zatem około:

n = N / | N |

n = [0.8111, 0.3244, 0.4866]

co możesz sprawdzić, mierząc długość 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] 

W interaktywnej powłoce Pythona:

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *