Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Transformaciones
3 Transformaciones
1. 2. 3. 4. 5. 6. Preliminares Transformaciones en 2D Concatenacin de transformaciones Cambio de sistema de coordenadas Transformaciones en 3D Transformaciones en OpenGL
Preliminares
Problema: Cmo mover un objeto?
En la vida real sabemos como mover un objeto Cmo hacerlo en un ordenador? Objetivo
Mover el objeto de aqu a all
Solucin
Utilizar un sistema de coordenadas
Define el espacio de forma numrica Proporciona una mtrica
Permite describir la distancia entre dos puntos
All
Aqu
Inf or m tic a Gr fi ca
2
Preliminares
Ejemplo: 1, 2 y 3 dimensiones
R1
Punto en 2
R2
Y Punto en (2,3) X
R3
Preliminares
Utilizando los sistemas de coordenadas tenemos instrucciones cuantitativas para mover los objetos
Instruccin para mover: sumar 5
R1
Aqu=2
All=7 X Y
R2
Instruccin para mover sumar 5 a x, sumar 4 a y
Aqu=(2,3)
Transformaciones en 2D
- Operaciones sobre objetos geomtricos que cambian posicin, orientacin o tamao
Translacin
Consiste en mover un objeto a una nueva posicin Las nuevas coordenadas vienen dadas por
x = x + Tx y = y + Ty
Inf or m tic a Gr fi ca
5
Transformaciones en 2D
Escalado
Cambia el tamao del objeto Se realiza respecto a un punto Si se realiza respecto al origen las nuevas coordenadas son
x = x*Sx y = y*Sy
Inf or m tic a Gr fi ca
6
Transformaciones en 2D
Si Sx=Sy escalado uniforme Si Sx<>Sy escalado no uniforme Si Sx<0 el objeto se refleja respecto al eje Y Si Sy<0 el objeto se refleja respecto al eje X
Inf or m tic a Gr fi ca
7
Transformaciones en 2D
Rotacin
Se utiliza para orientar objetos Como el escalado, se realiza respecto a un punto Si se realiza respecto al origen las nuevas coordenadas son
x = x cos - y sen y = x sen + y cos
Inf or m tic a Gr fi ca
8
Transformaciones en 2D
Representacin matricial de las transformaciones
Las transformaciones anteriores se pueden representar como:
x = a*x + b*y + c y = d*x + e*y + f
Esto se puede representar utilizando matrices Si incluimos todas las constantes en una matriz Es ms eficiente manejar matrices cuadradas
Traslacin
Escalado
Rotacin
Inf or m tic a Gr fi ca
9
Transformaciones en 2D
Coordenadas homogneas
Las coordenadas homogneas permiten tratar la traslacin como la rotacin y el escalado Para obtener las matrices cuadradas se aade una nueva fila a la matriz y aparece una nueva coordenada w Entonces los puntos del plano 2D se representan como coordenadas homogneas 3D Si la ltima fila es [0 0 1] entonces w = 1 Si w<>1 se proyecta sobre el plano w=1, esto se denomina la divisin homognea
W
Ph(x,y,w)
1
P2d(x/w,y/w,1)
X Y
Inf or m tic a Gr fi ca
10
Concatenacin de transformaciones
Concatenacin de transformaciones
Podemos combinar varias transformaciones para obtener operaciones ms complejas Por ejemplo -> Rotacin respecto a un punto cualquiera (xc , yc)
En tres pasos: Traslacin (-xc , -yc), Rotacin y Traslacin (xc , yc) Como las matrices son cuadradas se obtiene una nica matriz P3 = T(xc , yc) * R * T(-xc , -yc) * P
Inf or m tic a Gr fi ca
11
Concatenacin de transformaciones
Orden de las transformaciones
El producto de matrices no es conmutativo M1*M2<>M2*M1 La aplicacin de transformaciones tampoco lo es Transformaciones que si son conmutativas
Traslacin-Traslacin Escalado-Escalado Rotacin-Rotacin Escalado Uniforme-Rotacin
Inf or m tic a Gr fi ca
12
La transformacin de coordenadas de la aplicacin en coordenadas del dispositivo fsico (CD) se realiza en 2 pasos:
De CMR a CDN
Transformacin normalizada
De CDN a CD
Transformacin del dispositivo
Inf or Ventana m Coordenadas del mundo real tic a Marco Gr fi ca Coordenadas del
dispositivo normalizado
13
Transformaciones en 3D
Las transformaciones en 3D se utilizan para:
Manipular objetos en el espacio 3D
Traslacin, giro y escalado
Ayuda para visualizar y examinar objetos Los sistemas de coordenadas pueden ser
Dextrgiro (el utilizado para realizar las transformaciones) levgiro
El eje Z apunta hacia el exterior del papel El eje Z apunta hacia el interior del papel
levgiro dextrgiro
Inf or m tic a Gr fi ca
15
Transformaciones en 3D
Al igual que en 2D se utilizan las coordenadas homogneas
Un punto 3D (x, y, z) se representa por (x, y, z, w) y se transforma por la matriz
Inf or m tic a Gr fi ca
16
Transformaciones en 3D
Traslacin Rotacin
Eje X
Eje Y
Escalado
Eje Z
Inf or m tic a Gr fi ca
17
Transformaciones en 3D
Para realizar una rotacin respecto a un eje cualquiera, se deben de realizar los siguientes pasos:
Traslacin para que el eje pase por el origen Rotar el eje para que coincida con uno de los ejes de coordenadas Realizar la rotacin deseada alrededor del eje anterior Aplicar las rotaciones inversas para que el eje vuelva a su orientacin original Aplicar la traslacin inversa para que el eje vuelva a su posicin original
Y Y Y Y
Eje de rotacin
X Z Z X Z X Z
Inf or m tic a Gr fi ca
X
18
(GL_MODELVIEW);
Indica
la
matriz
que
vas
utilizar:
glMatrixMode
Inicializar la matriz a la identidad: void glLoadIdentity (void); Traslacin: void glTranslate{fd}(x, y, z); Rotacin: void glRotate{fd}(angle, x, y, z); Escalado: void glScale{fd}(x, y, z); Ejemplo: Pila de matrices:
glMatrixMode (GL_MODELVIEW); glLoadIdentity (); glTranslatef (10.0, 5.0, 1.0); glutWireSphere (1.0); glRotatef (15.0, 1.0, 1.0, 1.0); glutWireTeapot (1.0);
glMatrixMode (GL_MODELVIEW); glLoadIdentity (); glPushMatrix(); glTranslatef (10.0, 5.0, 1.0); glutWireSphere (1.0); glPopMatrix(); glRotatef (15.0, 1.0, 1.0, 1.0); glutWireTeapot (1.0);
Inf or m tic a Gr fi ca
19
SUMARIO
Las transformaciones geomtricas se utilizan para manipular objetos en el espacio Las ms habituales son: la traslacin, la rotacin y el escalado Las coordenadas homogneas permiten tratar la traslacin como la rotacin y el escalado Se pueden realizar transformaciones complejas mediante la concatenacin de transformaciones geomtricas El orden de las transformaciones no es conmutativo En la transformacin ventana-marco intervienen los siguientes sistemas de coordenadas
Coordenadas del mundo real (CMR) Coordenadas del dispositivo normalizado (CDN) Coordenadas del dispositivo fsico (CD)
Inf or m tic a Gr fi ca
20