Počítám normální vektor do roviny ax + o + cz + d = 0

Podle knihy:

Normálový vektor N je často normalizován na délku jednotky, protože v takovém případě rovnice

d = N ⋅Q + D 

dává podepsanou vzdálenost od roviny k libovolné bod Q. Pokud d = 0, pak bod Q leží v rovině. Pokud d> 0, říkáme, že bod Q leží na kladné straně roviny, protože Q by byl na straně, na kterou směřují normální vektorové body.

Jak získat N (normální vektor)? Děkuji

Odpověď

Od MathWorld :

Vzhledem k rovině

zde zadejte popis obrázku

Pak je normální vektor

zde zadejte popis obrázku

Vektor běžné jednotky n je dán vztahem:

zde zadejte popis obrázku

Proto pro rovinu 5x+2y+3z-1=0,

Normální vektor N je

N = [5,2,3]

Velikost | N | je

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

| N | = 6.1644

Normální jednotkový vektor n je tedy přibližně:

n = N / | N |

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

kterou můžete zkontrolovat změřením délky n .

Kód:

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] 

V interaktivním prostředí pythonu:

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *