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

insira a descrição da imagem aqui

Então, o vetor normal é

insira a descrição da imagem aqui

O vetor de unidade normal n é fornecido por:

insira a descrição da imagem aqui

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 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *