vectorial unitario una superficie sacar plano normal curva como calculo calcular math geometry vector

math - unitario - vector normal formula



¿Cómo calculo el vector normal de un segmento de línea? (4)

Supongamos que tengo un segmento de línea que va de (x1, y1) a (x2, y2). ¿Cómo calculo el vector normal perpendicular a la línea?

Puedo encontrar muchas cosas sobre hacer esto para aviones en 3D, pero no en 2D.

Por favor, aprenda las matemáticas (los enlaces a ejemplos, diagramas o algoritmos trabajados son bienvenidos), soy un programador más de lo que soy matemático;)


Esta pregunta se publicó hace mucho tiempo, pero encontré una forma alternativa de responderla. Así que decidí compartirlo aquí.
En primer lugar, uno debe saber que: si dos vectores son perpendiculares, su producto de puntos es igual a cero.
El vector normal (x'',y'') es perpendicular a la línea que conecta (x1,y1) y (x2,y2) . Esta línea tiene dirección (x2-x1,y2-y1) , o (dx,dy) .
Asi que,

(x'',y'').(dx,dy) = 0 x''.dx + y''.dy = 0

Hay muchos pares (x '', y'') que satisfacen la ecuación anterior. Pero el mejor par que SIEMPRE satisface es (dy,-dx) o (-dy,dx)


Otra forma de pensarlo es calcular el vector unitario para una dirección dada y luego aplicar una rotación de 90 grados en sentido antihorario para obtener el vector normal.

La representación matricial de la transformación 2D general tiene el siguiente aspecto:

x'' = x cos(t) - y sin(t) y'' = x sin(t) + y cos(t)

donde (x, y) son los componentes del vector original y (x '', y'') son los componentes transformados.

Si t = 90 grados, entonces cos (90) = 0 y sen (90) = 1. Sustituirlo y multiplicarlo da:

x'' = -y y'' = +x

El mismo resultado que el anterior, pero con un poco más de explicación sobre de dónde viene.


si definimos dx = x2-x1 y dy = y2-y1, entonces las normales son (-dy, dx) y (dy, -dx).

Tenga en cuenta que no se requiere división, por lo que no corre el riesgo de dividir por cero.


m1 = (y2 - y1) / (x2 - x1)

si son dos líneas perpendiculares:

m1*m2 = -1

entonces

m2 = -1 / m1 //if (m1 == 0, then your line should have an equation like x = b) y = m2*x + b //b is offset of new perpendicular line..

b es algo si quieres pasarlo desde un punto que definiste