You are on page 1of 4

1

MCRivara/Computacin Grfica/2003/2 1
Computacin Grfica
Transformaciones en 2D y 3D
Prof. Mara Cecilia Rivara
mcrivara@dcc.uchile.cl
Semestre 2003/2
MCRivara/Computacin Grfica/2003/2 2
Motivacin
Escalamiento Rotacin Traslacin
(50%) (45)-
MCRivara/Computacin Grfica/2003/2 3
Transformacin Representacin vectorial / matricial
P P

puntos en el plano
P = [x, y ]
T
P = [x, y]
T
Traslacin P = P + T
traslacin de vector
y
d
x
d
T
|
|
.
|

\
|
=
Escalamiento
to escalamien de matriz
y
s 0
0
x
s
S
SP
'
P
(
(

=
=
Rotacin alrededor
del origen en ngulo
(positivo en sentido
contrario punteros
reloj)
longitudes y ngulos preserva ortogonal matriz I
T
RR
rotacin de matriz
cos sen
sen - cos
R
RP P'
=
(

=
=
TRASLACIN NO TIENE REPRESENTACIN MATRICIAL EN IR
2
No se puede representar en base a multiplicacin. DESEABLE!
MCRivara/Computacin Grfica/2003/2 4
Coordenadas Homogneas
Desarrolladas en Geometra (E. A. Maxwell 1946)
P = (x, y) en IR
2
P
h
= (x
h
, y
h
, w)
Representacin homognea de P, donde
Propiedades / restricciones
Hay infinitas representaciones para un mismo punto
(2,3,6) = 4,6,12) = (1/3, 1/2, 1)
Con frecuencia se normaliza w =1
Al menos una coordenada es obligatoriamente 0
El punto (x, y, 0) representa punto en el infinito en la direccin (x, y)
Estas coordenadas homogeinizan el tratamiento del infinito
EN COMPUTACIN GRFICA PERMITEN EL TRATO HOMOGNEO
DE TODAS LAS TRANSFORMACIONES COMO MATRICES
w
h
y
y ,
w
h
x
x = =
MCRivara/Computacin Grfica/2003/2 5
Transformaciones Elementales 2D en
Coordenadas Homogneas
x x
Puntos P = y P

= y Matrices 3 x3
1 1
1 0 d
x
Traslacin T(dx, dy) = 0 1 d
y
P

= TP
0 0 1 T
-1
= T (-d
x
, -d
y
)
s
x
0 0
Escalamiento S(s
x
, s
y
) = 0 s
y
0 P = SP
0 0 1 S
-1
= S (1/s
x
, 1/s
y
)
cos -sen 0 P

= RP
Rotacin R () = sen cos 0 R
-1
=R
T
0 0 1
1 a 0
Shearing SHx = 0 1 0
0 0 1
1 0 0
Shy = b 1 0
0 0 1
MCRivara/Computacin Grfica/2003/2 6
Composicin de Transformaciones 2D
Se combinan las matrices elementales para producir el efecto deseado
Se gana eficiencia usando la matriz resultante
Ejemplo: Rotacin de un objeto alrededor de punto arbitrario P
1
(x
1
, y
1
)
Pasos:
1. Traslade P
1
al origen
2. Rote alrededor del origen
3. Traslade para que el punto en el origen vuelva a P
1
T (x
1
, y
1
) . R () . T (-x
1
, -y
1
) = M Matriz Resultante
3 2 1
2
MCRivara/Computacin Grfica/2003/2 7
SON CONMUTATIVAS LAS TRANSFORMACIONES?
No siempre!
Son conmutativas en DOS dimensiones
Traslaciones entre s
Escalamiento entre s
Rotaciones entre s
Escalamiento (s
x
= s
y
) y Rotacin
Productos arbitrarios de Transformaciones
Productos de Rotaciones preservan ngulos y longitudes
Productos de secuencias arbitrarias de transformaciones, preservan
paralelismo de las lneas, pero no longitudes ni ngulos
MCRivara/Computacin Grfica/2003/2 8
CUIDADO!
Algunos textos de CG, incluyendo primera adicin de Foley-van
Dam, usan la convencin de premultiplicar matrices por vectores
fila
Se necesita transponer las matrices para pasar de una convencin
a la otra.
(
(
(

x x x
x x x
x x x [x y 1]
MCRivara/Computacin Grfica/2003/2 9
Composicin de Transformaciones
Ejercicios
1. Demuestre que puede transformar un segmento de lnea,
transformando sus puntos extremos y construyendo un nuevo segmento
de lnea entre los puntos transformados.
2. Demuestre que dos rotaciones sucesivas en 2D son aditivas:
R(
1
) . R() 0 R (
1
+
2
)
3. Demuestre que en 2D, el escalamiento y la rotacin conmutan si
s
x
= s
y
. y que si s
x
s
y
esto no ocurre.
4. Encuentre una expresin para el error acumulado en y el nmero de
rotaciones incrementales realizadas
MCRivara/Computacin Grfica/2003/2 10
Transformaciones Elementales 3D en
Coordenadas Homogneas
w
z
z ,
w
y
y ,
w
x
x donde
P de homognea cin representa es P

w
z
y
x
P
z
y
x
P
h h
h
h
h
h
h
h
h
= = =
= =
(
(
(
(
(

(
(
(

Punto (0, 0, 0, 0) no se permite


Punto (a, b, c, 0) representa punto en el infinito
Transformaciones son matrices de 4x4
MCRivara/Computacin Grfica/2003/2 11
Aplicacin
Transformacin Window-Viewport simple
Coordenadas del
dispositivo (pantalla)
Rango mximo
ventana
Coord. del mundo
Viewport
y
x
v
u
MCRivara/Computacin Grfica/2003/2 12
y
x
(x
min
, y
min
)
(x
max
, y
max
)
v
u
(u
min
, v
min
)
(u
max
, v
max
)
Ventana en coord. del mundo Viewport (ventana transformada)
Pasos: 1) trasladar ventana al origen
2) escalar ventana al tamao del viewport (equivalente a
cambiar de sistema de coordenadas)
3) trasladar por (u
min
, v
min
)
3
MCRivara/Computacin Grfica/2003/2 13
Transformaciones Elementales 3D en
Coordenadas Homognea
w
z
z ,
w
y
y ,
w
x
x donde
P de homognea cin representa es P

w
z
y
x
P
z
y
x
P
h h
h
h
h
h
h
h
h
= = =
= =
(
(
(
(
(

(
(
(

Punto (0, 0, 0, 0) no se permite


Punto (a, b, c, 0) representa punto en el infinito
Transformaciones son matrices de 4x4
MCRivara/Computacin Grfica/2003/2 14
Sistemas de coordenadas (2 alternativas)
Orientado a la derecha
Convencin estndar
y
z
x
Sale de la pgina
Tres dimensiones
MCRivara/Computacin Grfica/2003/2 15
Orientado a la izquierda
asociado de manera natural al manejo de la pantalla: los z mayores
estn ms lejos del punto de vista
Obs: rotaciones positivas se mueven en sentido de los punteros del
reloj miradas desde el eje positivo (son idnticas en ambos
sistemas)
y
z
x
MCRivara/Computacin Grfica/2003/2 16
Transformaciones Elementales 3D
(Coord. Homog.)
|
|
.
|

\
|
=
(
(
(
(

=
=
(
(
(
(

z y x
1
z
y
x
z y x
z y x
z
y
x
z y
s
1
,
s
1
,
s
1
S
1 0 0 0
0 s 0 0
0 0 s 0
0 0 0 s
) s , s , S(s to Escalamien
) d - , d - , (-d
1 -
T
1 0 0 0
d 1 0 0
d 0 1 0
d 0 0 1
) d , d , T(d Traslacin
x
MCRivara/Computacin Grfica/2003/2 17
(
(
(
(

=
(
(
(
(

=
(
(
(
(

=
1 0 0 0
0 cos 0 sen -
0 0 1 0
0 sen 0 cos
) Ry( y eje alrededor
1 0 0 0
0 cos sen 0
0 sen - cos 0
0 0 0 1
) Rx( x eje alrededor
1 0 0 0
0 1 0 0
0 0 cos sen
0 0 sen - cos
) Rz( z eje alrededor
) ngulo (en Rotaciones
MCRivara/Computacin Grfica/2003/2 18
(
(
(
(

=
(
(
(
(

(
(
(
(

0
0
1
0

1
0
0
1

1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 - 0

z eje alrededor 90 en x" eje " de rotacin : Ejemplo
eje x eje y
4
MCRivara/Computacin Grfica/2003/2 19
agregados
to escalamien
y rotaciones
agregadas es Traslacion
1 0 0 0
t r r r
t r r r
t r r r
M agregada Matriz
. etc
1 0 0 0
0 1 0 0
0 s 1 0
0 s 0 1
SH Shearing
z 33 32 31
y 33 22 21
x 13 13 11
y h
x h
y x
ciones transforma de omposicin C
(
(
(
(
(

=
(
(
(
(
(

=
MCRivara/Computacin Grfica/2003/2 20
Ejercicio: Trasladar segmentos orientados P
1
P
2
y P
1
P
3
tal que P
1
P
2
coincida con eje z y P
1
P
2
est sobre plano y z
y
z
x
P
3
P
1
P
2
y
P
3
P
1
P
2
z
x
Una solucin:
1. Traslado P1 al origen
2. Rote alrededor del eje y hasta que P
1
P
2
quede sobre plano y z
3. Rote alrededor del eje x hasta que P
1
P
2
quede sobre el eje z
4. Rote alrededor del eje z hasta que P
1
P
3
quede en el plano y z
MCRivara/Computacin Grfica/2003/2 21
Ejercicio propuesto: rotacin alrededor de eje arbitrario
IMPORTANTE: En 3D las rotaciones no son conmutativas!
Una representacin de poliedro: matriz tal que sus columnas son las
coordenadas homogneas de sus vrtices.
MCRivara/Computacin Grfica/2003/2 22
Proceso visualizacin 3D
Modelo
Coord. Mundo
3D
Visualizacin
Raster
2D
....
Necesitamos
Proyecciones: transformar objetos 3D en proyecciones en plano 2D
Volumen de la vista
Plano de proyeccin (viewport en el dispositivo)
Recorte (clipping)
Contra volumen
de la vista
Proyeccin a
plano de
proyeccin
Transformacin
a coordenadas
del Dispositivo
Conceptualmente
MCRivara/Computacin Grfica/2003/2 23
Conceptos: proyectores rectos, centro de proyeccin, plano de
proyeccin
Proyecciones Geomtricas Planas
Proyecciones
Perspectiva
Centro de proyeccin a
distancia finita del plano
de proyeccin
Paralela
Centro de proyeccin a
distancia infinita del
plano de proyeccin
(proyectores convergen)
CP en el infinito
(proyectores paralelos)
A
B
A
B
A
B
A
B
CP
MCRivara/Computacin Grfica/2003/2 24
Perspectiva
En la proyeccin, el tamao del objeto vara inversamente con la
distancia del objeto al centro de proyeccin.
Objetos parecen ms realistas
No es til par almacenar forma y medidas exactas de los objetos.
Las lneas paralelas en general no se mantienen paralelas.
Proyecciones de lneas paralelas que no son paralelas al plano de
proyeccin convergen en un punto de anulacin (vanishing point)

You might also like