0% found this document useful (0 votes)
69 views

Geom2d PDF

The document discusses 2D geometric transformations of points and lines represented by Cartesian coordinates. It introduces various transformations including translation, scale, reflection, rotation, and shear. These transformations can be represented by 2x2 matrices in homogeneous coordinates. The document also covers viewing 2D objects in a world coordinate system through a viewing window and viewport, requiring a window to viewport transformation matrix.

Uploaded by

stalin1227
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views

Geom2d PDF

The document discusses 2D geometric transformations of points and lines represented by Cartesian coordinates. It introduces various transformations including translation, scale, reflection, rotation, and shear. These transformations can be represented by 2x2 matrices in homogeneous coordinates. The document also covers viewing 2D objects in a world coordinate system through a viewing window and viewport, requiring a window to viewport transformation matrix.

Uploaded by

stalin1227
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

2D Geometric Transformations

(Chapter 5 in FVD)

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.
2
Translation
• Translate (a,b): (x,y) (x+a,y+b)

Translate(2,4)

Scale
• Scale (a,b): (x,y) (ax,by)

Scale (2,3)

Scale (2,3)

4
• How can we scale an object
without moving its origin (lower
left corner)?

Translate(-1,-1)

Translate(1,1) Scale(2,3)

Reflection

Scale(-1,1)

Scale(1,-1)

6
Rotation
• Rotate(θ):
(x,y) (x cos(θ)+y sin(θ), -x sin(θ)+y cos(θ))

Rotate(90)

Rotate(90)

• How can we rotate an object


without moving its origin (lower
left corner)?

Translate(-1,-1)

Translate(1,1)
Rotate(90)

8
Shear
• Shear (a,b): (x,y) (x+ay,y+bx)

Shear(1,0)

Shear(0,2)

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.

10
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 b   x  ax + by 
 c d   y  = cx + dy 
    

11

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 b   x 
 ' =  d   
    
12
Scale
• Scale(a,b): (x,y) (ax,by)

a 0  x  ax 
 0 b  y  = by 
    

• If a or b are negative, we get


reflection.

13

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
 
14
Shear, Rotation

• Shear(a,b): (x,y) (x+ay,y+bx)

1 a   x   x + ay 
b 1   y  =  y + bx 
    

• Rotate(θ):
(x,y) (xcosθ+ysinθ , -xsinθ + ycosθ)

 cosθ sin θ   x   x cosθ + y sin θ 


− sin θ =
 cosθ   y   − x sin θ + y cosθ 

15

Composition of Transformations

• A sequence of transformations
can be collapsed into a single
matrix:
[A][B ][C ]
x  x
 = [D ] y
 y  
• Note: order of transformations is
important! (otherwise - commutative groups)

translate rotate

rotate translate

16
Translation
 x  x + a
• Translation(a,b):   →  
 y   y + b
• Problem: Cannot represent
translation using 2x2 matrices.

• Solution:
Homogeneous Coordinates

17

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 

18
Translation
• Translate(a,b):
1 0 a   x   x + a 
0 1 b   y  =  y + b 
    
0 0 1   1   1 

• Affine transformation now have


the following form:

a b e
c d f 

 0 0 1 

19

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.
20
• Example: Rotation about an
arbitrary point:
(x0,y0)

• Actions:
– Translate the coordinates so that the
origin is at (x0,y0).
– Rotate by θ.
– Translate back.

 1 0 x0  cosθ − sin θ 0 1 0 − x0   x 
0 1 y   sin 0 0 1 − y0   y  =
 0  θ cosθ
0 0 1  0 0 1 0 0 1   1 

cosθ − sin θ x0 (1 − cosθ ) + y0 sin θ   x 


=  sin θ cosθ y0 (1 − cosθ ) − x0 sin θ   y 
 0 0 1   1 
21

• 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.
22
Viewing in 2D
(Chapter 6 in FVD)

World Coordinate
Device Coordinate Window
Viewport

Object in World

g
pin
map
:2D
3D
2D:2D mapping

Device Coordinates World Coordinates

• Objects are given in world coordinates.


• The world is viewed through a world-
coordinate window.
• The WC window is mapped onto a
device coordinate viewport.

23

Viewing in 2D (cont.)

Maximum range
of screen
Window coordinates
Viewport

World Coordinates Screen Coordinates


(Device Coordinates)

Window to Viewport
Transformation

24
Window to Viewport Transformation

(xmax,ymax) (umax,vmax)

(xmin,ymin) (umin,vmin)

Window in Window Window Translated to


World translated scaled to viewport position in
Coordinates to origin viewport size. screen coordinates.

u -u v -v
Mwv = T(umin,vmin) S( xmax -xmin , ymax -ymin ) T(-xmin,-ymin)
max min max min

umax-umin
1 0 umin xmax-xmin v 0-v 0 1 0 -xmin
max min
= 0 1 vmin 0 ymax-ymin 0 0 1 -ymin
0 0 1 0 0 1 0 0 1

umax-umin umax-umin
xmax-xmin 0 xmax-xmin (-xmin) + umin
= vmax-vmin vmax-vmin
0 ymax-ymin y -y (-ymin) + vmin
max min

0 0 1

25

You might also like