2 votos

Cálculo de la normal plana más ajustada a partir de n puntos

He estado trabajando constantemente con "3D Math Primer for Graphics and Game Development" y estoy atascado en cómo los autores derivan su ecuación para el mejor ajuste plano normal dado n puntos. Tenga en cuenta, no estoy necesariamente buscando a alguien para derivar la prueba, un buen libro / referencia / nombre de la técnica sería suficiente.

Voy a describir el problema, pero para una vista rápida, un snip-it está disponible en google books, sección 9.5.3.

http://books.google.ca/books?id=X3hmuhBoFF0C&pg=PA316&lpg=PA316&dq=best+ajuste+plano+normal+desde+puntos&source=bl&ots=tizZIDFwr3&sig=hGSJBMCg9LjRavQM8QOL4tYayhc&hl=es&sa=X&ei=AWLUUvaeO8beyAHqy4DgBg&ved=0CD4Q6AEwAzgK#v=onepage&q=best%20fit%20plano%20normal%20desde%20puntos&f=false

Dado $n$ puntos, $p_1 = [x_1, y_1, z_1], [x_2, y_2, z_2], ..., [x_n, y_n, z_n]$

Lo normal $x,y,z$ componentes son los siguientes, pero sin explicación de la derivación.

$n_x = \sum\limits_{i=1}^n(z_i + z_{i+1})(y_i - y_{i+1})$

Se da una ecuación similar para cada componente del vector normal.

Gracias.

1voto

John Hughes Puntos 27780

Este es el trato: Plucker y otros de su generación descubrieron que si tomabas un polígono en el espacio y lo proyectabas al plano xy, podías calcular el área $A_{xy}$ del polígono resultante. Y lo mismo ocurre con $A_{zy}$ y $A_{zx}$ . De hecho, se puede calcular el firmado área, de modo que los polígonos en sentido contrario a las agujas del reloj se cuentan como positivos y los de las agujas del reloj como negativos. La fórmula para $n_z$ que tienes es exactamente el doble de la fórmula del área $A_{xy}$ . Volveré sobre ello en un minuto.

Lo bueno es que estas tres áreas proyectadas, cuando se ensamblan en un vector, resultan producir el vector normal al polígono. Esto es bastante fácil de ver cuando el polígono es paralelo a uno de los planos: dos de las áreas proyectadas son cero, y la tercera es distinta de cero. Para el caso más general, la prueba más rápida que conozco implica algo de álgebra lineal y la fórmula de cambio de área para integrales dobles, y no quiero escribirla aquí.

Volvamos a la cuestión del área plana: ¿POR QUÉ es que la fórmula correcta (excepto por el factor que falta de $\dfrac{1}{2}$ )?

Contesta:

En primer lugar, consideremos el caso en el que sólo hay 3 puntos. Dado que cada polígono puede dividirse en una colección de triángulos, eso servirá.

Segundo, si restas algún número $c$ de todos los $y$ -coordenadas, el número obtenido no cambiaría. Lo mismo ocurre con $z$ -coordenadas. Así que vamos a restar $z_1$ de todos los $z$ coords, adn $y_1$ de todos los $y$ -coords. Ahora tenemos un triángulo con un vértice en el origen. Los otros dos vértices son $(y_1 -y_0, z_1 - z_0)$ y $(y_2 - y_0, z_2 - z_0)$ . Y si conoces los productos cruzados de vectores, puedes calcular que el área del triángulo es simplemente el producto cruzado de los dos vectores de las aristas (hasta un factor de $\dfrac{1}{2}$ ).

La versión habitual de la fórmula del producto cruzado para el área tiene un valor absoluto para que obtengas el área....pero si eliminas el valor absoluto, obtienes el firmado área, que es exactamente lo que se necesita en la fórmula de Plucker para la normal. ¡Es una cosa de ganar-ganar!

Plugin desvergonzado: esto se explica con detalle en el libro de gráficos que acabo de terminar de escribir. Pero creo que no debo decir de qué libro se trata.

Un dato adicional: Si calculas el vector normal para tu conjunto de puntos tomando sólo los vectores entre 3 de los puntos (digamos $AB$ y $AC$ ) y encontrar el producto cruzado, eso funcionaría, la mayoría de las veces. Pero si $A$ , $B$ et $C$ fueran colineales, se obtendría el $0$ -vector como respuesta, y tener que volver a intentarlo. Además, el método Plucker tiene el encanto de que si todos los puntos casi se encuentran en un plano, pero resulta que han sufrido un error de redondeo o algo así, el método sigue produciendo una aproximación muy buena a la normal del plano. De hecho, si los puntos son perturbados de manera uniforme e independiente a lo largo de la verdadera normal, creo que la calculada Plucker normal puede tener un valor esperado que es la verdadera normal, bajo algunas suposiciones débiles acerca de la distribución de los puntos originales, pero no lo sé con certeza.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X