2D Transformations PDF
Document Details

Uploaded by GoldenTaiga
Tags
Summary
This document describes 2D transformations, including translation, scaling, rotation, reflection, shearing and their applications to graphics. It explains how these transformations affect points in a 2D coordinate system, and provides examples and formulas.
Full Transcript
2D Transformations 1 Transformation What are they? Changing something to something else via rules. Mathematics: mapping between values in a range set and domain set (function/ relation) Geometric: translate, rotate, scale, shear… Why are they importa...
2D Transformations 1 Transformation What are they? Changing something to something else via rules. Mathematics: mapping between values in a range set and domain set (function/ relation) Geometric: translate, rotate, scale, shear… Why are they important to graphics? Moving objects on screen/ in space specifying the camera’s view of a 3D scene Mapping from model space to world space to camera space to screen space Specifying parent/child relationships -2 Transformation Transform every point on an object according to certain rule. Q (x’, y’) P (x,y) T Initial Object Transformed Object x x’ The point Q is the image of P under the transformation T. y y’ 3 Transformations Basic 2D Transformations: Translation Scaling Rotation Other 2D Transformations: Reflection Shearing 4 5 Translation (55,60) (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. 6 8 Scaling About the Origin (x’,y’) x x. s x (x,y) (x,y) y y. s y (x’,y’) Uniform Non-Uniform sx s y ( sx , sy 0) The parameters sx, sy are called scale factors. sx s y 9 11 12 Rotation About the Origin cont. y (x’,y’) (x’,y’) (x,y) (x,y) q o x x x cosq y sin q y x sin q y cosq The above 2D rotation is actually a rotation about the z-axis (0,0,1) by an angle q. 13 Rotation About a Pivot Point (x’,y’) (x,y) (xp , yp) Pivot Point Pivot point is the point of rotation Pivot point need not necessarily be on the object 15 Rotation About a Pivot Point STEP-1: Translate the pivot point to the origin (x,y) (x1, y1) (xp , yp) x1 x x p y1 y y p 16 Rotation About a Pivot Point STEP-2: Rotate about the origin (x2, y2) (x1, y1) x 2 x1 cosq y1sinq y 2 x1 sinq y1 cosq 17 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 18 Rotation About a Pivot Point x ( x x p ) cosq ( y y p ) sin q x p y ( x x p ) sin q ( y y p ) cosq y p Specifying a 2D-Rotation about a pivot point (xp,yp): glTranslatef(xp, yp, 0); glRotatef(theta, 0, 0, 1.0); glTranslatef(-xp, -yp, 0); Note the OpenGL specification of the sequence of transformations in the reverse order ! 19 Scaling About a Fixed Point Translate the fixed point to origin (x,y) Scale with respect to the origin (x’,y’) Translate the fixed point to its original position. (xf , yf ) x ( x x f ).s x x f y ( y y f ).s y y f 20 y Reflections Initial Reflection about y x = x Object x Reflection about origin Reflection about x x = x y = y y = y [21 Matrix Representation x' x tx y' y t y x x t x y y t y x x cos q y sin q y x sin q y cos q x cos q sin q x y sin q y cos q x ' x.S x S x. x 0. y y ' y.Sy 0. x Sy. y x sx 0 x y 0 sy y 25 Matrix Representations x x t x Translation y y t y x cosq sin q x y sin q cosq y Rotation [Origin] x sx 0 x Scaling [Origin] y 0 s y y 26 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 27 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. 29 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) 30 Homogeneous Coordinates Matrix Representation x ' x t x 1.x 0. y t x.1 y ' y t y 0.x 1. y t y.1 1 0.x 0. y 1.1 x 1 0 tx x y 0 1 ty y 1 0 0 1 1 31 Homogeneous Coordinates Basic Transformations x 1 0 tx x Translation P’=TP y 0 1 t y y 1 0 0 1 1 x cos q sin q 0 x Rotation [O] P’=RP y sin q cos q 0 y 1 0 0 1 1 x s x 0 0 x Scaling [O] y 0 s 0 y P’=SP y 1 0 0 1 1 32 Composite Transformations Transformation T followed by x x Transformation Q followed by y [ R][Q][T ] y Transformation R: 1 1 Example: (Scaling with respect to a fixed point) x 1 0 x f sx 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 36 Order of Transformations In composite transformations, the order of transformations is very important. Rotation followed by Translation: Translation followed by Rotation: 37