Tema 4 - Transformaciones 3D
Índice
1.
Sistemas de Coordenadas
2.
Transformaciones Básicas
1.
Traslación
2.
Escalado
3.
Rotación Plana
4.
Afilamiento
5.
Deformaciones
3.
Composición de Transformaciones
4.
Rotación General
5.
Transformación de Sistemas de Coordenadas
Introducción
•
Nos movemos en un mundo 3D
•
Se debepermitir trabajar directamente
con objetos 3D
z
y
x
•
Sin embargo 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 2 dimensiones
•
Hace falta un tercer eje, Z, perpendicular al
X y al Y
•
(2,0,0)
(2,0,0)
(2,0,0)
Para el sentido del eje Z se usa la regla de la
mano derecha
(2,0,0)
Cualquier punto se describe entonces como
una terna de valores (x, y, z)
•
Z
(2,0,0)
(2,0,0)
Y
(2,0,0)(2,0,0)
X
Transformaciones 3-D
•
Son extensiones de las transformaciones en dos dimensiones
•
En el caso 2D teníamos inicialmente matrices 2x2, pero eso sólo nos permitía
operaciones del tipo
⎛ a1
( x ' , y ' ) = ( x, y ) ⋅ ⎜
⎜b
⎝1
•
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 ⎟
⎠
a2
b2
c2
a3 ⎞
⎟
b3 ⎟
c3 ⎟
⎠
x' = ax + by + c
Por tanto, en 3-D, aplicando la misma regla, habrá que pasar a matrices 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
•
Z
Reposiciona un objeto desplazándolo a las
nuevascoordenadas
P’ = (x’, y’, z’)
P = (x, y, z)
⎧ x' = x + t x
⎪
⎨ y' = y + t y
⎪ z' = z + t
z
⎩
Y
X
•
En forma matricial:
P = ( x, y , z )
P' = ( x' , y ' , z ' )
⎛1
⎜
⎜0
T =⎜
0
⎜
⎜t
⎝x
0
1
0
0
0
ty
1
tz
0⎞
⎟
0⎟
0⎟
⎟
1⎟
⎠
T ( − t x , −t y , − t z )
•
La transformación inversa sería
•
Para trasladar objetos, trasladamos sólosus vértices y
redibujamos
P' = P ⋅ T
Escalado con respecto al origen
•
•
Z
La posición del punto se multiplica por una constante
Hay que especificar tres factores de escala
⎧ x' = s x x
⎪
⎨ y' = s y y
⎪ z' = s z
z
⎩
P’ = (x’, y’, z’)
P = (x, y, z)
Y
X
•
En forma matricial:
P = ( x, y , z )
P' = ( x' , y ' , z ' )
⎛ sx
⎜
⎜0
S =⎜
0
⎜
⎜0
⎝
0
sy0
0
0
sz
0
0
0⎞
⎟
0⎟
0⎟
⎟
1⎟
⎠
P' = P ⋅ S
⎛1 1 1⎞
S⎜ , , ⎟
⎜s s s ⎟
⎝ x y z⎠
•
La transformación inversa sería
•
Para trasladar objetos, trasladamos sólo sus vértices y redibujamos
Rotación Plana alrededor del 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
Z
Y
X
⎧ x' = x cos θ − y sin θ
⎪
⎨ y ' = x sin θ + y cos θ
⎪
z' = z
⎩
•
P’ = (x’, y’, z’)
En forma matricial:
⎛ cos θ
⎜
⎜ − sin θ
RZ = ⎜
0
⎜
⎜0
⎝
sin θ
cos θ
0
0
0 0⎞
⎟
0 0⎟
1 0⎟
⎟
0 1⎟
⎠
Y
P = (x, y, z)R
P ' = P ⋅ RZ
X
Z
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
⎩
x' = x
⎧
⎪
⎨ y ' = y cos θ − z sin θ
⎪ z ' = y sin θ + z cos θ
⎩
Alrededor del eje Z
P’ = (x’, y’, z’)
Z
P = (x, y, z)
Y
X
Alrededor del...
Regístrate para leer el documento completo.