Estoy calculando el vector normal a un plano ax + by + cz + d = 0

Según el libro:

El vector normal N a menudo se normaliza a la longitud unitaria porque en ese caso la ecuación

d = N ⋅Q + D 

da la distancia con signo desde el plano a un valor arbitrario punto Q. Si d = 0, entonces el punto Q se encuentra en el plano. Si d> 0, decimos que el punto Q se encuentra en el lado positivo del plano, ya que Q estaría en el lado en el que apunta el vector normal.

¿Cómo obtener el N (vector normal)? Gracias

Respuesta

De MathWorld :

Dado el plano

ingrese la descripción de la imagen aquí

Entonces el vector normal es

ingrese la descripción de la imagen aquí

El vector unitario normal n viene dado por:

ingrese la descripción de la imagen aquí

Por lo tanto, para el plano 5x+2y+3z-1=0,

El vector normal N es

N = [5,2,3]

La magnitud | N | es

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

| N | = 6.1644

El vector unitario normal n es por lo tanto aproximadamente:

n = N / | N |

n = [0.8111, 0.3244, 0.4866]

que puede comprobar midiendo la longitud 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] 

En un shell interactivo de Python:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *