Está en la página 1de 20

Transformaciones geomtricas

1. 2. 3. 4. 5. 6. Preliminares Transformaciones en 2D Concatenacin de transformaciones Cambio de sistema de coordenadas Transformaciones en 3D Transformaciones en OpenGL

Profesora: M. Victoria Luzn

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

Se necesita cuantificar aqu y 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

Inf or Sistema de coordenadas m dextrgiro tic a X Gr fi Punto en (2,-2,-2) ca


3

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)

Inf or m tic All=(7,7) a Gr fi ca


X
4

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

Si |Sx|>1 y |Sy|>1 aumenta el tamao Si |Sx|<1 y |Sy|<1 disminuye

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

Traslacin despus de rotacin

Transformaciones que no son conmutativas


Traslacin-Escalado Traslacin-Rotacin Escalado No Uniforme-Rotacin

Inf or m tic a Gr fi ca
12

Rotacin despus de traslacin

Cambio de Sistema de Coordenadas


En las aplicaciones grficas hay que utilizar unidades que se ajusten al problema:
Coordenadas del mundo real (CMR)

Los dispositivos fsicos tienen diversos tamaos y rangos


Habitualmente se utiliza un dispositivo virtual
Coordenadas del dispositivo normalizado (CDN) (0.0,0.0) a (1.0,1.0)

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

Cambio de Sistema de Coordenadas


Transformacin ventana-marco:
Se traslada la esquina inferior izquierda de la ventana al origen Se aplican los factores de escala para que marco y ventana tengan el mismo tamao Se traslada el origen a la esquina inferior izquierda del marco

Coordenadas del dispositivo normalizado


14

Inf or m Ventana tic Coordenadas del mundo real a Gr Marco fi ca


wymax wymin wxmin wxmax vymax vymin vxmin vxmax

Coordenadas del Mundo

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

Para obtener el punto 3D de las coordenadas homogneas se debe dividir por w


x= x/w y= y/w z= z/w

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

Transformaciones con OpenGL


(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);

void glPushMatrix (void); void glPopMatrix (void); Ejemplo:

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

También podría gustarte