6 votos

Superficies cuádricas y matrices de transformación

Actualmente me enfrento a un problema y creo que he encontrado la solución. Sin embargo, me interesaría conocer su opinión o sugerencias al respecto.

He escrito un software de modelado geométrico y tengo usuarios que quieren definir una serie de cuerpos diferentes (por ejemplo, cilindros, esferas, elipsoides, etc.) proporcionando los coeficientes de la ecuación general de superficie cuádrica:

$$ax^2 + 2bxy + 2cxz + 2dx + \dots=0$$

que en general puede escribirse también utilizando una matriz de coeficientes $Q$ y un vector fila $v:$

$$v Q v^t$$

Mi modelador de sólidos ya proporciona varios objetos diferentes como cilindros, elipsoides, etc., pero están definidos en un sistema canónico (por ejemplo, cilindro paralelo al $\,z\,$ ) y llevar una matriz de transformación para colocarlos en la posición correcta para el renderizado.

Para tratar cuerpos definidos por cuádricas generales tengo que hacer dos cosas:

1.) Determinar qué tipo de superficie se ha definido
2.) Obtener la matriz de transformación que transformará la superficie respectiva a la posición/orientación que se incluye implícitamente en los coeficientes de la cuádrica.

Después de hacer un poco de álgebra se me ocurrió la siguiente idea para 2).

Se me ocurrió abordar la cuestión mediante la transformación del eje principal. Así que primero trataría de determinar los valores propios y los vectores propios de la matriz de coeficientes $Q.$ La matriz que está representada por los vectores propios en sus columnas debe transformar mi matriz de coeficientes en el sistema canónico.

Si tomo la inversa de esta matriz propia, ésta debería ser mi matriz de transformación, ¿o me equivoco? Los valores propios determinarán la magnitud de parámetros como el radio de las esferas y los cilindros, los semiejes mayor y menor de los elipsoides, etc.

Si alguien tiene una solución más sencilla, estaré encantado de discutirla también.

Muchas gracias. Chris

0voto

Stefano Borini Puntos 57

Este material complementario (capítulo 11) de un curso de visión por ordenador describe la forma matricial de las superficies cuadráticas (Q), cómo trazarlas y cómo aplicarles matrices de transformación homogéneas (M):

$$ Q'=M^{-1}Q(M^{-1})^t $$ con $$ X=\left[\begin{array}{cccc}x\\y\\z\\1\end{array}\right], ~ Q = \left[ \begin{array}{cccc} a & b & c & d \\ b & e & f & g\\ c & f & h & i \\ d & g & i & j \end{array} \right], ~ X^tQX=0, $$

y $X$ siendo tu $v^t$ .

0voto

Tolga Birdal Puntos 126

Bien, intentemos algo así: $$ C' = MCM^T $$ con $M$ siendo la pose buscada y $(C,C')$ las cuádricas en correspondencia.

En $C$ es una matriz real y simétrica, si aplicamos una descomposición Eigen, podemos escribir: $$ V'D'(V')^T = MVD(V)^TM^T $$ Reorganicémonos: $$ V'D'(V')^T = MV(D)(MV)^T $$ Dado que una transformación rígida no cambiaría los valores propios, espero que $$ V' = MV $$ y desde aquí: $$ M = V'V^{-1} $$

Sin embargo, no lo he puesto en práctica. Así que hágamelo saber si usted piensa que hay algún error en este pensamiento.

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