3-Transformaciones

20
Profesora: M. Victoria Luzón 3 Transformaciones Transformaciones geométricas geométricas 1. 1. Preliminares Preliminares 2. 2. Transformaciones en 2D Transformaciones en 2D 3. Concatenación de transformaciones 3. Concatenación de transformaciones 4. Cambio de sistema de coordenadas 4. Cambio de sistema de coordenadas 5. Transformaciones en 3D 5. Transformaciones en 3D 6. Transformaciones en OpenGL 6. Transformaciones en OpenGL

Transcript of 3-Transformaciones

Page 1: 3-Transformaciones

Profesora: M. Victoria Luzón

3Transformaciones Transformaciones geométricasgeométricas

1.1. PreliminaresPreliminares2.2. Transformaciones en 2DTransformaciones en 2D3. Concatenación de transformaciones3. Concatenación de transformaciones4. Cambio de sistema de coordenadas4. Cambio de sistema de coordenadas5. Transformaciones en 3D5. Transformaciones en 3D6. Transformaciones en OpenGL6. Transformaciones en OpenGL

Page 2: 3-Transformaciones

2

InfInforor

mámátictic

a a GrGráfiáficaca

PreliminaresPreliminares

• Problema: ¿Cómo mover un objeto?– En la vida real sabemos como

mover un objeto– ¿Cómo hacerlo en un ordenador?– Objetivo

• Mover el objeto de “aquí“ a “allí“– Se necesita cuantificar “aquí“ y “allí“

• Solución– Utilizar un sistema de coordenadas

• Define el espacio de forma numérica

• Proporciona una métrica– Permite describir la distancia

entre dos puntos

Aquí

Allí

Page 3: 3-Transformaciones

3

InfInforor

mámátictic

a a GrGráfiáficaca

PreliminaresPreliminares

• Ejemplo: 1, 2 y 3 dimensiones

R1

Punto en 2Y

Punto en (2,-2,-2)

R3

Sistema de coordenadas dextrógiro

Z

X

Punto en (2,3)R2

Y

X

Page 4: 3-Transformaciones

4

InfInforor

mámátictic

a a GrGráfiáficaca

PreliminaresPreliminares

• Utilizando los sistemas de coordenadas tenemos instrucciones cuantitativas para mover los objetos

Instrucción para mover: sumar 5R1

Aquí=2 Allí=7X

Y

Instrucción para moversumar 5 a x, sumar 4 a y

R2

X

Aquí=(2,3)

Allí=(7,7)

Page 5: 3-Transformaciones

5

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 2DTransformaciones en 2D

• Translación

– Consiste en mover un objeto a una nueva posición– Las nuevas coordenadas vienen dadas por

• x’ = x + Tx y’ = y + Ty

- Operaciones sobre objetos geométricos que cambian posición, orientación o tamaño

Page 6: 3-Transformaciones

6

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 2DTransformaciones en 2D

• Escalado– Cambia el tamaño 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 tamaño

– Si |Sx|<1 y |Sy|<1 disminuye

Page 7: 3-Transformaciones

7

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 2DTransformaciones 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

Page 8: 3-Transformaciones

8

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 2DTransformaciones en 2D

• Rotación– 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α

Page 9: 3-Transformaciones

9

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 2DTransformaciones en 2D

• Representación 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 más eficiente manejar matrices cuadradas

Traslación Escalado Rotación

Page 10: 3-Transformaciones

10

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 2DTransformaciones en 2D

• Coordenadas homogéneas– Las coordenadas homogéneas

permiten tratar la traslación como la rotación y el escalado

– Para obtener las matrices cuadradas se añade una nueva fila a la matriz y aparece una nueva coordenada w’

– Entonces los puntos del plano 2D se representan como coordenadas homogéneas 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 división homogénea

1

Ph(x,y,w)

P2d(x/w,y/w,1)

X

Y

W

Page 11: 3-Transformaciones

11

InfInforor

mámátictic

a a GrGráfiáficaca

Concatenación de transformacionesConcatenación de transformaciones

• Concatenación de transformaciones– Podemos combinar varias

transformaciones para obtener operaciones más complejas

– Por ejemplo -> Rotación respecto a un punto cualquiera (xc , yc)

• En tres pasos: Traslación (-xc , -yc), Rotación y Traslación (xc , yc)

• Como las matrices son cuadradas se obtiene una única matrizP3 = T(xc , yc) * R * T(-xc , -yc) * P

Page 12: 3-Transformaciones

12

InfInforor

mámátictic

a a GrGráfiáficaca

Concatenación de transformacionesConcatenación de transformaciones

• Orden de las transformaciones– El producto de matrices no es

conmutativo M1*M2<>M2*M1– La aplicación de transformaciones

tampoco lo es– Transformaciones que si son

conmutativas• Traslación-Traslación• Escalado-Escalado• Rotación-Rotación• Escalado Uniforme-Rotación

– Transformaciones que no son conmutativas

• Traslación-Escalado• Traslación-Rotación• Escalado No Uniforme-Rotación

Traslación después de rotación

Rotación después de traslación

Page 13: 3-Transformaciones

13

InfInforor

mámátictic

a a GrGráfiáficaca

Cambio de Sistema de CoordenadasCambio de Sistema de Coordenadas

• En las aplicaciones gráficas hay que utilizar unidades que se ajusten al problema:– Coordenadas del mundo real (CMR)

• Los dispositivos físicos tienen diversos tamaños y rangos– Habitualmente se utiliza un dispositivo

virtual• Coordenadas del dispositivo

normalizado (CDN) (0.0,0.0) a (1.0,1.0)• La transformación de coordenadas de la

aplicación en coordenadas del dispositivo físico (CD) se realiza en 2 pasos:– De CMR a CDN

• Transformación normalizada– De CDN a CD

• Transformación del dispositivo

Ventana

Coordenadas del mundo real

Marco

Coordenadas del dispositivo normalizado

Page 14: 3-Transformaciones

14

InfInforor

mámátictic

a a GrGráfiáficaca

Cambio de Sistema de CoordenadasCambio de Sistema de Coordenadas

• Transformación 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 tamaño– Se traslada el origen a la esquina inferior

izquierda del marco

vxmax

vymin

vymax

vxmin

Marco

Coordenadas del Mundo

wymax

wymin

wxmin wxmax

Ventana

Coordenadas del mundo real

Coordenadas del dispositivo normalizado

Page 15: 3-Transformaciones

15

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 3DTransformaciones en 3D

• Las transformaciones en 3D se utilizan para:– Manipular objetos en el espacio 3D

• Traslación, giro y escalado

– Ayuda para visualizar y examinar objetos– Los sistemas de coordenadas pueden ser

• Dextrógiro (el utilizado para realizar las transformaciones)• levógiro

El eje Z apunta hacia el exterior del papel

dextrógiro

El eje Z apunta hacia el interior del papel

levógiro

Page 16: 3-Transformaciones

16

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 3DTransformaciones en 3D

• Al igual que en 2D se utilizan las coordenadas homogéneas– 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 homogéneas se debe dividir por w

• x’’= x’/w’ y’’= y’/w’ z’’= z’/w’

Page 17: 3-Transformaciones

17

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 3DTransformaciones en 3D

• Traslación

• Escalado

• Rotación

– Eje X

– Eje Y

– Eje Z

Page 18: 3-Transformaciones

18

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones en 3DTransformaciones en 3D

• Para realizar una rotación respecto a un eje cualquiera, se deben de realizar los siguientes pasos:– Traslación para que el eje pase por el origen– Rotar el eje para que coincida con uno de los ejes de coordenadas– Realizar la rotación deseada alrededor del eje anterior– Aplicar las rotaciones inversas para que el eje vuelva a su orientación

original– Aplicar la traslación inversa para que el eje vuelva a su posición

original

X

Y

Z

Eje de rotación

Z

X

Y

Z

X

Y

X

Y

Z

Page 19: 3-Transformaciones

19

InfInforor

mámátictic

a a GrGráfiáficaca

Transformaciones con OpenGLTransformaciones con OpenGL

• Indica la matriz que vas a utilizar: glMatrixMode(GL_MODELVIEW);

• Inicializar la matriz a la identidad: void glLoadIdentity (void);• Traslación: void glTranslate{fd}(x, y, z);• Rotación: void glRotate{fd}(angle, x, y, z);• Escalado: void glScale{fd}(x, y, z);• Ejemplo:

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

• Pila de matrices: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);

Page 20: 3-Transformaciones

20

InfInforor

mámátictic

a a GrGráfiáficaca

SUMARIOSUMARIO

• Las transformaciones geométricas se utilizan para manipular objetos en el espacio

• Las más habituales son: la traslación, la rotación y el escalado• Las coordenadas homogéneas permiten tratar la traslación como la

rotación y el escalado• Se pueden realizar transformaciones complejas mediante la

concatenación de transformaciones geométricas• El orden de las transformaciones no es conmutativo• En la transformación ventana-marco intervienen los siguientes

sistemas de coordenadas– Coordenadas del mundo real (CMR)– Coordenadas del dispositivo normalizado (CDN)– Coordenadas del dispositivo físico (CD)