Estou calculando o vetor normal para um plano ax + by + cz + d = 0
De acordo com o livro:
O vetor normal N é frequentemente normalizado para o comprimento da unidade porque, nesse caso, a equação
d = N ⋅Q + D
dá a distância com sinal do plano para um ponto Q. Se d = 0, então o ponto Q está no plano. Se d> 0, dizemos que o ponto Q está no lado positivo do plano, pois Q estaria no lado para o qual o vetor normal aponta.
Como obter o N (vetor normal)? Obrigado
Resposta
De MathWorld :
Dado o plano
Então, o vetor normal é
O vetor de unidade normal n é fornecido por:
Portanto, para o plano 5x+2y+3z-1=0
,
O vetor normal N é
N = [5,2,3]
A magnitude | N | é
| N | = sqrt (5 ^ 2 + 2 ^ 2 + 3 ^ 2)
| N | = 6.1644
O vetor de unidade normal n é, portanto, aproximadamente:
n = N / | N |
n = [0,8111, 0,3244, 0,4866]
que você pode verificar medindo o comprimento de n .
Código:
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]
Em um shell python interativo:
>>> N = [5,2,3] >>> mag(N) 6.164414002968976 >>> n(N) [0.8111071056538127, 0.3244428422615251, 0.48666426339228763] >>> mag(n(N)) 1.0