2D Transformations

2D Transformations

2D Geometric Transformations (Chapter 5 in FVD) 1 2D geometric transformation • 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) 6 Reflection 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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    31 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us