Tema 3. Transformaciones 2D
1Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
1Tema 3
Tema 3
Tema 3. Transformaciones 2D
3.1 Introducción
3.2 Transformaciones en 2D
3.3 Composición de transformaciones
3.4 Transformaciones geométricas respecto a un punto
3.5 Transformaciones entre sistemas de coordenadas
3.1 Introducción
• Nuestro modelo a visualizar estará dispuesto en el espacio geométrico 2D ó 3D
• Las transformaciones geométricas serán generalmente imprescindibles para la visualización de nuestro modelo en un dispositivo
• Las transformaciones geométricas también serán imprescindibles en sistemas CAD, simulación, videojuegos etc.
Tema 3. Transformaciones 2D
3Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
33.1 Introducción
Sistemas de coordenadas 2D y 3D
Y
Punto en (2,-2,2)
R3
Sistema de coordenadas dextrógiro
Z
X
Punto en (2,3)R2
Y
X
3.1 Introducción
Y
Instrucción para mover
sumar 5 a x,
sumar 4 a y
R
2
X
Aquí=(2,3)
Allí=(7,7)
Tema 3. Transformaciones 2D
5Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
53.1 Introducción
• ¿Cómo podemos relacionar distintos objetos?
– Se puede considerar la localización de los objetos con respecto a un punto central de referencia llamado origen – Un vector indica cual es la dirección a
seguir desde el origen y la longitud del camino hasta llegar a un punto • Notación: fila o columna
– Ej.: el vector que apunta al centro del coche
• Utilizaremos la notación columna y las matrices de transformación se premultiplicarán
X
Y
(2,3)
(10,2)
(8,7.5)
⎥ ⎦ ⎤ ⎢ ⎣ ⎡
2 10
[
10
2
]
3.1 Introducción
• Los vectores se utilizan en gráficos para:
– Representar las posiciones de los vértices
– Determinar la orientación de una superficie
• Vector normal a la superficie – Modelar la interacción de la luz
• Vector de incidencia de la luz
L
N
θ
γ
L’
Tema 3. Transformaciones 2D
7Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
73.1 Introducción
Suma de vectores
X
Y
P
P’
P+P’
Y
X
⎥
⎦
⎤
⎢
⎣
⎡
=
3
2
P
⎥
⎦
⎤
⎢
⎣
⎡
=
2
4
P'
⎥
⎦
⎤
⎢
⎣
⎡
=
⎥
⎦
⎤
⎢
⎣
⎡
+
⎥
⎦
⎤
⎢
⎣
⎡
=
+
=
5
6
2
4
3
2
P'
P
'
P'
3.1 Introducción
• Producto por un escalar • Dependencia lineal
– Dos vectores son linealmente dependientes cuando uno es un múltiplo de otro
Tema 3. Transformaciones 2D
9Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
93.1 Introducción
• Vectores base del plano
– Los vectores unidad (de longitud 1) en los ejes xe yse llaman los vectores base estándar del plano
– La colección de todos los múltiplos escalares de [1 0] nos da el primer eje de coordenadas
– La colección de todos los múltiplos escalares de [0 1] nos da el segundo eje de coordenadas
• Vectores base no ortogonales
– ¿Podemos obtener cualquier vector [n m] como combinación de otros dos vectores cualesquiera [a b] y [c d]?
– Siempre podremos encontrar αy βmientras [a b] y [c d] no sean linealmente dependientes
⎥
⎦
⎤
⎢
⎣
⎡
⋅
+
⋅
⋅
+
⋅
=
⎥
⎦
⎤
⎢
⎣
⎡
⋅
+
⎥
⎦
⎤
⎢
⎣
⎡
⋅
=
⎥
⎦
⎤
⎢
⎣
⎡
d
b
c
a
b
a
m
n
β
α
β
α
β
α
d
c
3.1 Introducción
• Propiedades algebraicas de los vectores: – Conmutativa
• P + Q = Q + P – Asociativa
• (P + Q) + R = P + (Q + R) – Identidad (suma)
• Existe un vector 0 / (P+0)=(0+P)=P para todo P
– Inverso
• Para cualquier P existe un vector -P / P + (-P) = 0
– Distributiva (vector): • r (P+Q)=rP+rQ – Distributiva (escalar):
• (r + s)P=rP+sP – Asociativa (escalar):
• r(sP)=(rs)P – Identidad (producto):
Tema 3. Transformaciones 2D
11Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
113.1 Introducción
• Producto escalar de vectores – El resultado es escalar – Define la longitud de un vector
(P*P)=x2 + y2 es el cuadrado de la longitud
– Permite normalizar vectores • La norma de un vector es su
longitud
• Un vector es unitario si |P|=1 • Para normalizar: P/|P|
– Mide los ángulos entre dos vectores • Si P y P’ son distintos de 0
entonces P*P’ = |P||P’|cos(θ−φ)
P
P’
θ
φ
(θ−φ)
|P|sin
θ
|P|cos
θ
P
y'
y
x'
x
y'
x'
y
x
P'
P
⎥
=
⋅
+
⋅
⎦
⎤
⎢
⎣
⎡
•
⎥
⎦
⎤
⎢
⎣
⎡
=
•
P
P
P
=+
•
3.1 Introducción
– Permite calcular la longitud de la proyección de un vector sobre un eje
• Si W es un vector unitario, entonces P*W es la longitud de la proyección de P sobre la línea que contiene W
– Determina si dos vectores son perpendiculares
• El producto escalar de dos vectores perpendiculares es cero
P
W
θ
φ
(θ−φ)
⎥
⎦
⎤
⎢
⎣
⎡
=
4
3
-P'
⎥
⎦
⎤
⎢
⎣
⎡
=
3
4
P
Y
X
0
4)
(3
-3)
(4
y'
y
x'
x
P'
P
•
=
⋅
+
⋅
=
⋅
+
⋅
=
0
0
P'
P
)
cos(90
P'
P
P'
Tema 3. Transformaciones 2D
13Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
133.1 Introducción
• Producto vectorial
– El resultado es un vector (ortogonal a los vectores operando)
– Mide los ángulos entre dos vectores • Si P y P’ son distintos de 0 entonces
|PxP’|= |P||P’|sen(θ−φ)
– Permite calcular la distancia de un punto a una recta
• Si W es un vector unitario, entonces |PxW| es la distancia de P a la recta que contiene W
– Determina si dos vectores son paralelos • El modulo del producto vectorial de
dos vectores paralelos es 0
z'
y'
x'
z
y
x
k
j
i
P'
P
→ → →
=
×
P
P’
θ
φ
(θ−φ)
P
W
θ
φ
(θ−φ)
3.2 Transformaciones 2D
• Puntos 2D: como vectores columna
• Transformaciones: matrices cuadradas que premultiplican al vector
Tema 3. Transformaciones 2D
15Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
153.2 Transformaciones 2D
• Traslación
– Desplazar un objeto desde una posición a otra diferente X’ = X + Tx; Y’ = Y + Ty;
P’ = P + T
• Borrar las primitiva de la posición actual • Sumar desplazamiento a los puntos de control • Redibujar la primitiva en la nueva posición
P X Y P X Y T T T x y =⎡ ⎣⎢ ⎤ ⎦⎥ ′ = ′ ′ ⎡ ⎣ ⎢ ⎤⎦⎥ =⎡ ⎣ ⎢ ⎤ ⎦ ⎥
3.2 Transformaciones 2D
• Escalado
– Modificación del tamaño de un objeto X’ = X * Sx; Y’ = Y * Sy;
– Si un factor de escala es menor que 1 el objeto se reduce en esa dimensión
– Si un factor de escala es mayor que 1 el objeto aumenta en esa dimensión
– Si un factor de escala es negativo el objeto se invierte en esa dimensión
– Si los factores de escala son diferentes se cambian las proporciones
Tema 3. Transformaciones 2D
17Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
173.2 Transformaciones 2D
• Escalado
3.2 Transformaciones 2D
• Rotación
– Giro de un punto respecto de otro (en este caso el origen) – Si a un punto de coordenadas polares (r, β) se le aplica un giro a:
X’ = r*cos(β+α) = r*(cos(β)*cos(α) - sen(β)*sen (α)) = (r*cos(β))*cos(α) - (r*sen(β))*sen (α) = X*cos(α) - Y*sen (α)
Y’ = r*sen(β+α) = r*(sen(β)*cos(α) + cos(β)*sen (α)) = (r*sen(β))*cos(α) - (r*cos(β))*sen (α) = Y*cos(α) + X*sen (α)
P’ = R * P
( )
R
=
⎡
−
⎣
⎢
sen(
cos
α
α
)
cos(
sen(
α
α
)
)
⎤
⎦
⎥
Tema 3. Transformaciones 2D
19Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
193.3 Composición de transformaciones
• Coordenadas homogéneas
– Homogeneizar las tres transformaciones: producto por una matriz – Para obtener las coordenadas homogéneas se incluye el plano en
un espacio 3D cuya tercera dimensión es constante [X Y] [X Y 1]
– De este modo se pueden acumular varias transformaciones en una sola matriz
– Las nuevas matrices serán:
⇒
T
T
T
E
E
E
R
x
y
x
y
=
⎡
⎣
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
=
⎡
⎣
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
=
−
⎡
⎣
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
1 0
0 1
0 0
1
0
0
0
0
0
0
1
0
0
0
0
1
cos( )
sen( )
sen( )
cos( )
α
α
α
α
3.3 Composició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
Tema 3. Transformaciones 2D
21Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
213.3 Composició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 Proporcional-Rotación – Transformaciones que no son conmutativas
• Traslación-Escalado • Traslación-Rotación
• Escalado No Proporcional-Rotación
Traslación después de rotación
Rotación después de traslación
3.4 Transformaciones geométricas respecto a un punto
• Las operaciones complejas se dividen en otras más sencillas
• Traslación:La traslación no depende de un punto de referencia
• Escalado:El escalado se realiza respecto a un punto de referencia (x,y)
– Trasladar el objeto (-x,-y) – Realizar el escalado del objeto – Deshacer la traslación
• Rotación:Las rotaciones se realizan desde un punto llamado centro de rotaciones (CR)
Tema 3. Transformaciones 2D
23Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
233.5 Transformaciones entre Sistema de Coordenadas
• Sistema de coordenadas del mundo real (CMR)
– Descripción del sistema físico real
– Las unidades de medida dependen de la representación – Se deben transformar en medidas del dispositivo (mapping) – La transformación (mapping) se compone de un escalado y de un
desplazamiento
• Sistema de coordenadas del dispositivo (CD)
– Depende del dispositivo
• Tamaño de la ventana, en pixels si es una pantalla • Situación del origen de coordenadas
• Sentido de avance de cada coordenada
• Sistema de coordenadas del dispositivo normalizado (CDN)
– Para realizar el mapping de forma normalizada se utiliza un dispositivo ficticio de anchura 1 y altura 1
• Cómo podemos pasar de un sistema de coordenadas a otro de la forma más eficiente y a ser posible de un modo normalizado
• Se define una zona del mundo real: ventana (window) • Se define una zona del dispositivo: marco (viewport)
– El tamaño de un marco va de un pixel a toda la pantalla
– Lo que quede fuera de la ventana queda fuera del marco
• 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
Coordenadas del mundo real
Coordenadas del dispositivo normalizado
Ventana
Marco
Tema 3. Transformaciones 2D
25Gràfics per Computador
2004/2005Tema 3. Transformaciones 2D
25• 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
3.5 Transformaciones entre Sistema de Coordenadas
• La transformación de CDN a CD sería similar a la anterior • En general las ventanas y los marcos serán
rectangulares
• Tipos de transformaciones entre sistemas:
• Isotrópica (conservando proporciones, 1 factor de escala)
ISOTRÓPICA
ANISOTRÓPICA