Professional Documents
Culture Documents
2D Transformations
1
Transformation
Transform every point on an object according to certain rule.
Q (x’, y’)
P (x,y)
T
Initial Object
Transformed Object
(20,35)
(45,30)
(65,30)
x x tx
(10,5) (30,5)
y y t y
The vector (tx, ty) is called the offset vector.
RM [6]-3
Translation (OpenGL)
Specifying a 2D-Translation:
RM [6]-4
Rotation About the Origin
y
(x’,y’)
(x’,y’)
(x,y)
(x,y)
o x
x x cos y sin
y x sin y cos
The above 2D rotation is actually a rotation about the z-axis (0,0,1) by
an angle .
RM [6]-5
Rotation About the Origin
RM [6]-6
Rotation About a Pivot Point
(x’,y’) (x,y)
(xp , yp)
Pivot Point
RM [6]-7
Rotation About a Pivot Point
(x1, y1)
(xp , yp)
x1 x x p
y1 y y p
RM [6]-8
Rotation About a Pivot Point
x 2 x1 cos y1sin
y 2 x1 sin y1 cos
RM [6]-9
Rotation About a Pivot Point
STEP-3: Translate the pivot point to original position
(x’, y’)
(x2, y2)
(xp, yp)
x x 2 x p
y y 2 y p
RM [6]-10
Rotation About a Pivot Point
x ( x x p ) cos ( y y p ) sin x p
y ( x x p ) sin ( y y p ) cos y p
RM [6]-11
Scaling About the Origin
(x’,y’)
(x,y)
x x. s x
(x,y)
(x’,y’)
y y. s y
Uniform Non-Uniform
sx s y sx s y
RM [6]-12
Scaling About the Origin
RM [6]-13
Scaling About a Fixed Point
(xf , yf )
x ( x x f ).s x x f
y ( y y f ).s y y f
RM [6]-14
Reflections
y
Reflection about y Initial
Object
x = x
Reflection about
origin
Reflection about x
x = x
y = y
y = y
RM [6]-15
Reflections
RM [6]-16
Shear
x x hx y
y y
x x t x
Translation y y t
y
Rotation [Origin]
x cos sin x
y sin cos y
x sx 0 x
Scaling [Origin] y 0 s y
y
RM [6]-18
Matrix Representations
x 1 0 x
Reflection about x y 0
1 y
x 1 0 x
Reflection about y
y 0
1 y
Reflection about x 1 0 x
the Origin y 0 1 y
RM [6]-19
Matrix Representations
Shear along x x 1 h x
y 0
1 y
x 1 0 x
Shear along y
y h
1 y
RM [6]-20
Homogeneous Coordinates
To obtain square matrices an additional row was added to the matrix and an
additional coordinate, the w-coordinate, was added to the vector for a point.
In this way a point in 2D space is expressed in three-dimensional
homogeneous coordinates.
This technique of representing a point in a space whose dimension is one
greater than that of the point is called homogeneous representation. It
provides a consistent, uniform way of handling affine transformations.
RM [6]-21
Homogeneous Coordinates
•If we use homogeneous coordinates, the geometric
transformations given above can be represented using
only a matrix pre-multiplication.
• A composite transformation can then be represented
by a product of the corresponding matrices.
Cartesian Homogeneous
( x, y )
( xh, yh, h), h 0
a b
, ( a, b, c ), c 0
c c
Examples: (5, 8) (15, 24, 3)
(x, y) (x, y, 1)
RM [6]-22
Homogeneous Coordinates
Basic Transformations
x 1 0 t x x
Translation y 0 1 t y
P’=TP y
1 0 0 1 1
x cos sin 0 x
Rotation [O] y sin cos
P’=RP 0 y
1 0 0 1 1
x sx 0 0 x
Scaling [O] y 0 s 0 y
P’=SP y
RM 1 0 0 1 1 [6]-23
Inverse of Transformations
1
Examples: T (t x , t y ) T (t x ,t y )
R 1 ( ) R( )
1 1
S (sx , s y ) S ,
1
s s
x y
RM
H x1 (h) H x (h) [6]-24
Transformation Matrices
Additional Properties:
T (t x , t y )T (u x , u y ) T (t x u x , t y u y )
R (1 ) R ( 2 ) R (1 2 )
R ( ) 1
S ( s x , s y ) S ( wx , wy ) S ( s x wx , s y wy )
RM [6]-25
Composite Transformations
Transformation T followed by x x
Transformation Q followed by y [ R ][Q ][T ] y
Transformation R:
1 1
x 1 0 x f s x 0 0 1 0 x f x
y 0 1 y 0
0 0 1 y f y
f sy
1 0 0 1 0 0 1 0 0 1 1
Order of Transformations
RM [6]-26
Order of Transformations
In composite transformations, the order of
transformations is very important.
Rotation followed by Translation:
RM [6]-27
Order of Transformations (OpenGL)
OpenGL postmultiplies the current matrix
with the new transformation matrix
glMatrixMode(GL_MODELVIEW); Current Matrix
glLoadIdentity(); [I]
glVertex2f(x,y); [T][R]P
RM [6]-28
General Properties
Preserved Attributes
Line Angle Distance Area
Scaling Yes No No No
RM [6]-29
Affine Transformation
A general invertible, linear, transformation.
x a1 x b1 y c1
y a 2 x b2 y c2
(a1b2 a 2 b1 0)
Transformation Matrix:
a1 b1 c1
a b2 c 2
2
0 0 1
RM [6]-30
Affine Transformation: Properties
RM [6]-31