Transformaciones En 3D
Índice
1. 2. Sistemas de Coordenadas Transformaciones Básicas
1. 2. 3. 4. 5. Traslación Escalado Rotación Plana Afilamiento Deformaciones
3. 4. 5.
Composición de Transformaciones Rotación General Transformación de Sistemas de Coordenadas
Introducción
• • Nos movemos en un mundo 3D Se debe permitir trabajar directamente con objetos 3D
z
y x
• Sinembargo al final siempre habrá que generar una image 2D en pantalla
•
Las transformaciones son las mismas que antes, añadiendo una tercera componente
– – – traslaciones rotaciones escalados
Sistemas de Coordenadas
• • Una escena 3D se define por los puntos, líneas y planos que la componen Necesitamos un sistema para poder referenciar las coordenadas, al igual que ocurría en 2dimensiones Hace falta un tercer eje, Z, perpendicular al X y al Y Cualquier punto se describe entonces como una terna de valores (x, y, z) Para el sentido del eje Z se usa la regla de la mano derecha
(2,0,0) (2,0,0) (2,0,0) (2,0,0)
Z
• • •
(2,0,0) (2,0,0)
(2,0,0)
(2,0,0)
Y
X
Transformaciones 3-D
• • Son extensiones de las transformaciones en dos dimensiones En el caso 2Dteníamos inicialmente matrices 2x2, pero eso sólo nos permitía operaciones del tipo
⎛ a1 ( x ' , y ' ) = ( x, y ) ⋅ ⎜ ⎜b ⎝ 1
•
a2 ⎞ ⎟ b2 ⎟ ⎠
x' = ax + by
Por eso pasamos a matrices 3x3, utilizando coordenadas homogéneas
⎛ a1 ⎜ ( x' , y ' ,1) = ( x, y,1) ⋅ ⎜ b1 ⎜c ⎝ 1
•
a2 b2 c2
a3 ⎞ ⎟ b3 ⎟ c3 ⎟ ⎠
x' = ax + by + c
Por tanto, en 3-D, aplicando la misma regla, habrá que pasar amatrices 4x4
⎛ a1 ⎜ ⎜b ( x' , y ' , z ' ,1) = ( x, y, z ,1) ⋅ ⎜ 1 c ⎜ 1 ⎜d ⎝ 1
a2 b2 c2 d2
a3 b3 c3 d3
a4 ⎞ ⎟ b4 ⎟ c4 ⎟ ⎟ d4 ⎟ ⎠
x' = ax + by + cz + d
Traslación
• Reposiciona un objeto desplazándolo a las nuevas coordenadas Z P’ = (x’, y’, z’) P = (x, y, z)
⎧ x' = x + t x ⎪ ⎨ y' = y + t y ⎪ z' = z + t z ⎩
• En forma matricial:
Y X
P = ( x, y , z )
P' = ( x' , y ' ,z ' )
⎛1 ⎜ ⎜0 T =⎜ 0 ⎜ ⎜t ⎝ x
0 1 0 ty
0 0 1 tz
0⎞ ⎟ 0⎟ 0⎟ ⎟ 1⎟ ⎠
P' = P ⋅ T
• •
La transformación inversa sería
T ( − t x , −t y , − t z )
Para trasladar objetos, trasladamos sólo sus vértices y redibujamos
Escalado con respecto al origen
• • La posición del punto se multiplica por una constante Hay que especificar tres factores de escala Z
⎧ x' = s x x ⎪ ⎨ y' =s y y ⎪ z' = s z z ⎩
X • En forma matricial:
P’ = (x’, y’, z’) P = (x, y, z) Y
P = ( x, y , z )
P' = ( x' , y ' , z ' )
⎛ sx ⎜ ⎜0 S =⎜ 0 ⎜ ⎜0 ⎝
0 sy 0 0
0 0 sz 0
0⎞ ⎟ 0⎟ 0⎟ ⎟ 1⎟ ⎠
P' = P ⋅ S
•
La transformación inversa sería
⎛1 1 1⎞ S⎜ , , ⎟ ⎜s s s ⎟ ⎝ x y z⎠
•
Para trasladar objetos, trasladamos sólo sus vértices y redibujamos
Rotación Plana alrededordel eje Z
• • • • El eje de rotación es paralelo a uno de los ejes principales El signo del ángulo viene dado por la regla de la mano derecha El punto al rotar permanece en el plano perpendicular al eje de rotación La expresión para la rotación en el eje Z es X Z
Y
⎧ x' = x cos θ − y sin θ ⎪ ⎨ y ' = x sin θ + y cos θ ⎪ z' = z ⎩
• En forma matricial: Y
P’ = (x’, y’, z’)
⎛ cos θ ⎜ ⎜ −sin θ RZ = ⎜ 0 ⎜ ⎜ 0 ⎝
sin θ cos θ 0 0
0 0⎞ ⎟ 0 0⎟ 1 0⎟ ⎟ 0 1⎟ ⎠
R
P = (x, y, z)
P ' = P ⋅ RZ
Z
X
Rotación Plana alrededor del eje X
• Para calcular la expresión de rotación alrededor del eje X, intercambiamos las variables
⎧ x' = x cos θ − y sin θ ⎪ ⎨ y ' = x sin θ + y cos θ ⎪ z' = z ⎩
Alrededor del eje Z
x' = x ⎧ ⎪ ⎨ y ' = y cos θ − z sin θ ⎪ z ' = y sin θ +z cos θ ⎩
Alrededor del eje X
P’ = (x’, y’, z’) Z P = (x, y, z)
•
En forma matricial:
Y X
0 ⎛1 ⎜ ⎜ 0 cos θ RX = ⎜ 0 − sin θ ⎜ ⎜0 0 ⎝
0 sin θ cos θ 0
0⎞ ⎟ 0⎟ 0⎟ ⎟ 1⎟ ⎠
P' = P ⋅ RX
Rotación Plana alrededor del eje Y
• Para calcular la expresión de rotación alrededor del eje Y, intercambiamos las variables
⎧ x' = x cos θ − y sin θ ⎪ ⎨ y ' = x sin θ + y cos θ ⎪ z' =...
Regístrate para leer el documento completo.