2D Geometric Transformations
(Chapter 5 in FVD)
• Translation • Scaling • Rotation • Shear • Matrix notation • Compositions • Homogeneous coordinates
2 2D Geometric Transformations • Question: How do we represent a geometric object in the plane? • Answer: For now, assume that objects consist of points and lines. A point is represented by its Cartesian coordinates: (x,y).
• Question: How do we transform a geometric object in the plane? • Answer: Let (A,B) be a straight line segment and T a general 2D transformation: T transforms (A,B) into another straight line segment (A’,B’), where A’=TA and B’=TB.
3 Translation
• Translate (a,b): (x,y) (x+a,y+b)
Translate(2,4)
4 Scale
• Scale (a,b): (x,y) (ax,by)
Scale (2,3)
Scale (2,3)
5 • How can we scale an object without moving its origin (lower left corner)?
Translate(-1,-1)
Translate(1,1) Scale(2,3)
Scale(-1,1)
Scale(1,-1)
7 Rotation
• Rotate(q): (x,y) (x cos(q)+y sin(q), -x sin(q)+y cos(q))
Rotate(90)
Rotate(90)
8 • How can we rotate an object without moving its origin (lower left corner)?
Translate(-1,-1)
Translate(1,1) Rotate(90)
9 Shear
• Shear (a,b): (x,y) (x+ay,y+bx)
Shear(1,0)
Shear(0,2)
10 Composition of Transformations
• Rigid transformation: – Translation + Rotation (distance preserving). • Similarity transformation: – Translation + Rotation + uniform Scale (angle preserving). • Affine transformation: – Translation + Rotation + Scale + Shear (parallelism preserving). • All above transformations are groups where Rigid Similarity Affine.
11 Affine
Similarity
Rigid
12 Matrix Notation
• Let’s treat a point (x,y) as a 2x1 matrix (a column vector): x y
• What happens when this vector is multiplied by a 2x2 matrix?
a bx ax by c d y cx dy
13 2D Transformations
• 2D object is represented by points and lines that join them. • Transformations can be applied only to the the points defining the lines. • A point (x,y) is represented by a 2x1 column vector, and we can represent 2D transformations using 2x2 matrices:
x' a bx y' c d y
14 Scale
• Scale(a,b): (x,y) (ax,by)
a 0x ax 0 b y by
• If a or b are negative, we get reflection.
• Inverse: S-1(a,b)=S(1/a,1/b)
15 Reflection • Reflection through the y axis: 1 0 0 1 • Reflection through the x axis: 1 0 0 1 • Reflection through y=x:
0 1 1 0 • Reflection through y=-x: 0 1 1 0 16 Shear, Rotation
• Shear(a,b): (x,y) (x+ay,y+bx)
1 ax x ay b 1y y bx
• Rotate(q): (x,y) (xcosq+ysinq , -xsinq + ycosq)
cosq sinq x xcosq ysinq sinq cosq y xsinq y cosq • Inverse: R-1(q)=RT(q)=R(-q)
17 Composition of Transformations
• A sequence of transformations can be collapsed into a single matrix: x x ABC D y y • Note: order of transformations is important! (otherwise - commutative groups)
translate rotate
rotate translate
18 Composition of Transformations (Cont.)
D = A B C
D-1 = C-1B-1A-1
Proof:
D * D-1 = ABC * C-1B-1A-1 = AB*I*B-1*A-1= A*I*A = I
19 Translation x x a • Translation(a,b): y y b • Problem: Cannot represent translation using 2x2 matrices.
• Solution: Homogeneous Coordinates
20 Homogeneous Coordinates • Homogeneous Coordinates is a mapping from Rn to Rn+1:
(x, y) (X,Y,W) (tx,ty,t)
• Note: (tx,ty,t) all correspond to the same non-homogeneous point (x,y). E.g. (2,3,1)(6,9,3).
• Inverse mapping: X Y (X ,Y,W ) , W W
21 Translation
• Translate(a,b):
1 0 ax x a 0 1 by y b 0 0 11 1
• Inverse: T-1(a,b)=T(-a,-b) • Affine transformation now have the following form:
a b e c d f 0 0 1
22 Geometric Interpretation W
Y (X,Y,W) 1 y x (X,Y,1)
X • A 2D point is mapped to a line (ray) in 3D. The non-homogeneous points are obtained by projecting the rays onto the plane Z=1.
23 • Example: Rotation about an arbitrary point:
(x0,y0)
q • Actions: – Translate the coordinates so that the
origin is at (x0,y0). – Rotate by q. – Translate back.
1 0 x0 cosq sinq 01 0 x0 x 0 1 y sinq cosq 00 1 y y 0 0 0 0 1 0 0 10 0 1 1
cosq sinq x0 (1cosq ) y0 sinq x sinq cosq y (1cosq )x sinq y 0 0 0 0 1 1
24 • Another example: Reflection about an Arbitrary Line:
p2
p1
L=p1+t (p2-p1)=t p2+(1-t) p1
• Actions:
– Translate the coordinates so that P1 is at the origin. – Rotate so that L aligns with the x- axis. – Reflect about the x-axis. – Rotate back. – Translate back.
25 Change of Coordinates
• It is often requires the transformation of object description from one coordinate system to another. • How do we transform between two Cartesian coordinate systems? • Rule: Transform one coordinate frames towards the other in the opposite direction of the representation change.
y’ x’
y
x
26 Change of Coordinates (Cont.)
Example:
X
P’
O Y
X’
P
O’ Y’
27 • Example:
– Represent the point P=(xp,yp,1) in the (x’,y’) coordinate system.
P'MP
where
cosq sinq 01 0 x0 1 1 M R T sinq cosq 00 1 y0 0 0 10 0 1
y’ y x’
q
(x0,y0) (xp,yp) x
28 • Alternative method:
– Assume x’=(ux,uy) and y’=(vx,vy) in the (x,y) coordinate system .
P'MP
where
u u 01 0 x x y 0 M vx vy 00 1 y0 0 0 10 0 1
y’ y x’
(vx,vy) (ux,uy) (x0,y0)
x
29 • Example:
– P is at the y’ axis P=(vx,vy):
y
(vx,vy) (ux,uy)
y’ x’ x
u u 0 x y vx 0 P' MP vx vy 0 vy 1 1 0 0 1 1
– What is the inverse?
30 • Another example: Reflection about an Arbitrary Line: p y 2
p1
x
• Define a coordinate systems (u,v)
parallel to P1P2: p p u u 2 1 x u p2 p1 y
u v v y x v ux y
1 0 p u v 0 u u 01 0 p 1x x x 1 0 0 x y 1x M 0 1 p u v 0 0 1 0 v v 0 0 1 p 1y y y x y 1y 0 0 1 0 0 1 0 0 1 0 0 10 0 1
31