TRANSFORMACIONES GEOMÉTRICAS
GRAFICACIÓN I
Transformaciones en dos dimensiones
Los objetos se definen mediante un conjunto de puntos. Las transformaciones son procedimientos para calcular nuevas posiciones de estos puntos, cambiado el tamaño y orientación del objeto.
Las operaciones básicas de transformación son
Traslación
Escalamiento
Rotación.
TraslaciónLas coordenadas (x, y) de un objeto se transforman a (x', y') de acuerdo a las fórmulas:
x x T y y Tx y' , '
El par (Tx, Ty) se conoce como vector de traslación.
y
x
y
x
(a)(b)
EscalamientoEl escalamiento modifica el tamaño de un polígono. Para obtener este efecto, se multiplica cada par coordenado (x, y) por un factor de escala en la dirección x y en la dirección y para obtener el par (x', y').
Las fórmulas son
x x S y y Sx y' ' y
x
y
x
(a)(b)
Escalamiento respecto a un punto fijo
Se puede llevar a cabo un escalamiento respecto a un punto fijo trasladando primero ese punto al origen, después escalando y luego regresando el objeto a la posición original.
Las ecuaciones son
x x x x S y y y y Sx y' , ' F F F F
y
x
y
x
(a)(b)
(x ,y )F F
F
F
1'
1'
ySSyy
xSSxx
yy
xx
Reacomodando
RotaciónLa rotación gira los puntos de una figura alrededor de un punto fijo. De la figura se obtiene
y
x
r
r(x, y)
(x', y')
x r r r
y r r r
' cos cos cos sen sen
' sen sen cos cos sen
x x y
y y x
' cos sen
' cos sen
Simplificando
Rotación respecto a un punto arbitrario
La rotación respecto a un punto arbitrario es
x x x x y y
y y y y x x
' cos sen
' cos sen
R R R
R R R
y
x
(x , y )R R
Coordenadas homogéneasPara poder representar las tres transformaciones en forma matricial como producto de matrices, es necesario representar los puntos en coordenadas homogéneas.
Estas coordenadas agregan una tercer componente a las coordenadas bidimensionales. De tal forma que, un punto (x, y) pasa a ser (x, y, W). El punto en coordenadas Cartesianas representado por esta tríada es el (x/W, y/W). El valor de W es generalmente 1.
Representación matricial de traslaciones
Haciendo uso de coordenadas homogéneas la traslación puede representarse como:
x y x y
T Tx y
' ' 1 1
1 0 0
0 1 0
1
En forma abreviada la transformación se representará por T(Tx, Ty)
T T T
T Tx y
x y
,
1 0 0
0 1 0
1
P P T T Tx y' ,
Haciendo uso de coordenadas homogéneas el escalamiento puede representarse como:
En forma abreviada la transformación se representará por S(Sx, Sy)
x y x y
S
Sx
y' ' 1 1
0 0
0 0
0 0 1
P P S S Sx y' , S S S
S
Sx y
x
y,
0 0
0 0
0 0 1
Representación matricial de escalamientos
Representación matricial de rotaciones
Haciendo uso de coordenadas homogéneas la rotación puede representarse como:
En forma abreviada la transformación se representará por R()
x y x y' '
cos sen
sen cos1 1
0
0
0 0 1
P P R' R
cos sen
sen cos
0
0
0 0 1
Composición de transformaciones
Para aplicar varias transformaciones a un conjunto de puntos basta con combinar las matrices de transformación en una sola, mediante multiplicación matricial. En caso de tener solo transformaciones del mismo tipo, la combinación sigue reglas muy simples.
T T T T T T T T T T Tx y x y x x y y1 1 2 2 1 2 1 2, , , Traslación:
Escalamiento:
Rotación:
S S S S S S S S S S Sx y x y x x y x1 1 2 2 1 2 1 2, , ,
R R R 1 2 1 2
Escalamiento respecto a un punto fijo en forma matricial
Para llevar a cabo un escalamiento respecto a un punto fijo, se procede multiplicando una matriz de traslación para llevar el punto fijo al origen por una de escalamiento y posteriormente por otra de traslación para llevar al punto fijo a su posición original.
1 0 0
0 1 0
1
0 0
0 0
0 0 1
1 0 0
0 1 0
1
0 0
0 0
1 1 1
x y
S
S
x y
S
S
S x S y
x
y
x
y
x y
F F F F
F F
(a)
(x ,y )F F
Objeto original y punto fijo
(b)Traslada de manera que elpunto fijo quede en el origen
(c)Escala el objeto respecto al origen
(d)
(x ,y )F F
Traslada de manera que elpunto fijo quede en la posiciónoriginal
Rotación respecto a un punto fijo en forma matricial
Para llevar a cabo una rotación respecto a un punto fijo, se procede multiplicando una matriz de traslación para llevar el punto fijo al origen por una de rotación y posteriormente por otra de traslación para llevar al punto fijo a su posición original.
1cos1cos1
0cos
0cos
1
010
001
100
0cos
0cos
1
010
001
RRRR
RRRR
senxysenyx
sen
sen
yx
sen
sen
yx
(a)
(x ,y )R R
Objeto original y punto fijo
(b)Traslada de manera que elpunto fijo quede en el origen
(c)Rota el objeto respecto al origen
(d)
(x ,y )R R
Traslada de manera que elpunto fijo quede en la posiciónoriginal
Forma general
En general una transformación que utilice traslaciones, escalamientos y rotaciones tendrá la forma:
x y x y
a d
b e
c f
' ' 1 1
0
0
1
Por tanto, el cálculo de las coordenadas transformadas se podrá hacer con las siguientes ecuaciones
feydxy
cbyaxx
'
'
Otras transformaciones
Otras transformaciones que permiten llevar a cabo operaciones muy útiles, estas son:
Reflexiones
Corte.
Reflexiones en x y yLas reflexiones respecto al eje x y y se obtienen con las matrices siguientes:
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
0 0 1
(a) (b)
Posición original
Posición reflejada
Posición reflejadaPosición original
Reflexión respecto al origen
1 0 0
0 1 0
0 0 1
(a)
Posición original
Posición reflejada
La reflexión respecto al origen se obtiene con :
Reflexión respecto a la recta y = x
Una reflexión respecto a la recta y = x, puede obtenerse en tres pasos: girar un ángulo de 45 en el sentido de las manecillas del reloj, una reflexión respecto al eje x, y una rotación de 45 grados en contra del sentido del reloj.
Posición original
(a) Rotación de -45 grados (b) Reflexión respecto a x. (a) Rotación de 45 grados
Posición original
Posición reflejada
0 1 0
1 0 0
0 0 1
Corte en xEl corte produce una deformación similar al deslizamiento de una capa sobre otra. El corte en x se produce por la matriz:
1 0 0
1 0
0 0 1
SH x
(a) (b)
(1,1)(2,1) (3,1)
(1,0)
(0,1)
(0,0) (0,0) (1,0)x x
y y
Corte en yEl corte en y se produce por la matriz
1 0
0 1 0
0 0 1
SH y
(a) (b)
(1,1)
(1,2)
(1,3)
(1,0)
(0,1)
(0,0) (0,0)
(0,1)
x x
y y
Transformaciones Ventana-Puerto de visión
Las transformaciones ventana-puerto de visión, mapean puntos en el mundo real a puntos en la pantalla.
Coordenadas mundiales Coordenadas de pantalla
Ventana
Puerto de visión 1
Puerto de visión 2
Transformaciones de visión
Ventana en coordenadas mundiales
(xmin, ymin)
(xmax, ymax)
Ventana trasladada al origen
Ventana escalada al tamaño del área de visión.
Traslación hasta la posición final.
(umin, vmin)
(umax, vmax)
Transformaciones de visión (continuación)
minminminmax
minmax
minmax
minmaxminmin ,,, vuT
yyvv
xxuu
SyxTMWV
1
010
001
100
00
00
1
010
001
minminminmax
minmax
minmax
minmax
minmin vuyyvv
xxuu
yx
Transformaciones de visión (continuación)
1
00
00
minminmax
minmaxminmin
minmax
minmaxmin
minmax
minmax
minmax
minmax
vyyvv
yuxxuu
x
yyvv
xxuu
MWV
Propiedades de las transformaciones
Los vectores fila de la submatriz superior 2x2 de rotación tienen tres propiedades:
1. Cada uno es un vector unidad
2. Cada uno es perpendicular al otro (su producto punto es cero)
3. El primer y segundo vector se rotarán por R() para que caigan sobre los ejes x y y positivos.
Una matriz que cumple esto se le llama ortogonal especial.
Una matriz de transformación de la forma:
1002221
1211
y
x
trr
trr
Donde la submatriz superior de 2x2 es ortogonal, conserva los ángulos y las longitudes.
Estas transformaciones se denominan de cuerpo rígido.
Una secuencia arbitraria de traslaciones, rotaciones y escalamientos conserva el paralelismo de las líneas, pero no la longitud ni los ángulos. Estas transformaciones se denominan transformaciones afines.
Operaciones de rastreoEl buffer de pantalla se puede manipular directamente para llevar a cabo algunas transformaciones. La más sencilla es la copia de un bloque de un lugar de la pantalla a otro.
Para girar una figura un ángulo múltiplo de 90 grados se pueden lograr invirtiendo renglones por columnas. La rotación por 180 grados se logra invirtiendo cada renglón y posteriormente invirtiendo los renglones.
Para otros ángulos cada área de pixel de destino se diagrama sobre la matriz que se gira y se calcula la cantidad de superposición con las áreas de pixel que se giran. Entonces se calcula una intensidad para el pixel al promediar las intensidades de los pixeles fuente superpuestos.
Rotación diferente de 90 grados
Escalamiento del mapa de bitsEscalamos las áreas de pixeles en el bloque original al emplear los valores de sx y sy y diagramar el rectángulo que se escala sobre un conjunto de pixeles destino. La intensidad de cada pixel destino se designa de acuerdo con el área de superposición con las áreas de pixel que se escalan.
Top Related