Sitio Web de Héctor E. Medellín Anaya |
Transformaciones en 3DLa representación de las transformaciones en tres dimensiones es una generalización de la de dos dimensiones. Los puntos se representan en coordenadas homogeneas como cuartetos y las matrices de transformación son de 4x4. Usaremos el sistema de coordenadas tridimensional de mano derecha, como se muestra en la figura. Las transformaciones se clasifican de la siguiente manera:
TraslaciónMueve el objeto a una nueva posición. La representación matricial es la siguiente: EscalamientoEl escalamiento c ambia el tamaño del objeto y al mismo tiempo desplaza el objeto a una nueva posición. RotaciónLa roación en tres dimensiones puede definirse alrededor de cualquier recta en el espacio. Existen tres rotaciones elementales que se definen alrededor de los ejes coordenados. Las matrices correspondientes son las siguientes. CorteExisten tres formas de aplicar la operación de corte o sesgado. La primera de ellas deja las coordenadas z del objeto inalteradas, la segunda deja las coordenadas y inalteradas y l atercera deja las coordenadas x inalteradas. En cada caso los coeficientes de la matriz modifican las otras dos coordenadas restantes independientemente. Las matrices correspondientes son las siguientes. Las transformaciones de rotación y escalamiento pueden realizarse respecto a un punto fijo trasladando el punto en cuestión al origen, aplicando la rotación o escalamiento y regresando luego el objeto a la posición original. Por ejemplo, el escalamiento respecto a un punto fijo es: El siguiente applet esta diseñado para visualizar objetos en tres dimensiones y manipularlos mediante transfromaciones. Tiene predefinidos 7 objetos, a saber: cubo, hipercubo, casa, esfera, cilindro, cono y toriode. Puede mover el punto de vista utlizando el mouse. Arrastre el mouse presionando botón izquierdo para girar en torno a x (movimiento horizontal) o en torno a y (movimiento vertical). Arrastre presionando el botón central para girar en z. Arrastre presionando botón derecho para acercar (derecha izquierda) el Punto de Referencia de Visión (VRP) y el tamaño de la ventana (arriba abajo). Para mover el origen de coordenadas, arrastre presionando tecla "shift", botón izquierdo mueve en x, botón derecho mueve en y, botón central mueve en z. En el recuadro de texto se introducen las transformaciones con los siguientes formatos:
Se tiene cuatro botones:
Las transformaciones deben escribirse empezando en la primer columna de cada renglón, de otra forma, serán ignoradas. Como ejemplo relizamos una rotación de 30º de la casa alrededor de la arista 13 que une los puntos 8 y 9. Las coordenadas de los puntos son (8, 2, 12) y (0, 16, 12). Para esta rotación debemos aplicar la siguiente secuencia:Sea V = sqrt((x2 - x1)*(x2 - x1)+(y2 - y1)*(y2 - y1)+(z2 - z1)*(z2 - z1)), a = (x1 - x1)/|V|, b = (y1 - y1)/|V|, c = (z1 - z1)/|V|, d = sqrt(a^2+b^2+c^2), alfa = acos(c/d), beta = acos(d) T(-x1,-y1,-z1)·Rx(alfa)·Ry(beta)·Rz(30º)·Ry(-beta)·Rx(-alfa)·T(-x1,-y1,-z1) En el programa introducimos la siguiente secuencia: t(-8,-2,-12) Aplique la secuencia y verifique que la arista en cuestión permanece inalterada.
|