
711d639260d866dad0aa4df0eda6e386.ppt
- Количество слайдов: 27
Computer Graphics 3: 2 D Transformations Course Website: http: //www. comp. dit. ie/bmacnamee
2 of 25 Contents In today’s lecture we’ll cover the following: – Why transformations – Transformations • Translation • Scaling • Rotation – Homogeneous coordinates – Matrix multiplications – Combining transformations
Images taken from Hearn & Baker, “Computer Graphics with Open. GL” (2004) 3 of 25 Why Transformations? In graphics, once we have an object described, transformations are used to move that object, scale it and rotate it
4 of 25 Translation Simply moves an object from one position to another xnew = xold + dx y ynew = yold + dy 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 Note: House shifts position relative to origin x
5 of 25 Translation Example y 6 5 4 (2, 3) 3 2 1 (1, 1) 0 (3, 1) 1 2 3 4 5 6 7 8 9 10 x
6 of 25 Scaling Scalar multiplies all coordinates WATCH OUT: Objects grow and move! xnew = Sx × xold ynew = Sy × yold y 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 x Note: House shifts position relative to origin
7 of 25 Scaling Example y 6 5 4 (2, 3) 3 2 1 (1, 1) 0 1 (3, 1) 2 3 4 5 6 7 8 9 10
8 of 25 Rotation Rotates all coordinates by a specified angle xnew = xold × cosθ – yold × sinθ ynew = xold × sinθ + yold × cosθ Points are always rotated about the origin y 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 x
9 of 25 Rotation Example y 6 5 4 (4, 3) 3 2 1 (3, 1) 0 1 2 3 (5, 1) 4 5 6 7 8 9 10
10 of 25 Homogeneous Coordinates A point (x, y) can be re-written in homogeneous coordinates as (xh, yh, h) The homogeneous parameter h is a nonzero value such that: We can then write any point (x, y) as (hx, hy, h) We can conveniently choose h = 1 so that (x, y) becomes (x, y, 1)
11 of 25 Why Homogeneous Coordinates? Mathematicians commonly use homogeneous coordinates as they allow scaling factors to be removed from equations We will see in a moment that all of the transformations we discussed previously can be represented as 3*3 matrices Using homogeneous coordinates allows us use matrix multiplication to calculate transformations – extremely efficient!
12 of 25 Homogeneous Translation The translation of a point by (dx, dy) can be written in matrix form as: Representing the point as a homogeneous column vector we perform the calculation as:
13 of 25 Remember Matrix Multiplication Recall how matrix multiplication takes place:
14 of 25 Homogenous Coordinates To make operations easier, 2 -D points are written as homogenous coordinate column vectors Translation: Scaling:
15 of 25 Homogenous Coordinates (cont…) Rotation:
16 of 25 Inverse Transformations can easily be reversed using inverse transformations
17 of 25 Composite/Combining Transformations A number of transformations can be combined into one matrix to make things easy – Allowed by the fact that we use homogenous coordinates Imagine rotating a polygon around a point other than the origin – Transform to centre point to origin – Rotate around origin – Transform back to centre point
18 of 25 Combining Transformations (cont…) 2 1 3 4
19 of 25 Combining Transformations (cont…) The three transformation matrices are combined as follows REMEMBER: Matrix multiplication is not commutative so order matters
20 of 25 Summary In this lecture we have taken a look at: – 2 D Transformations • Translation • Scaling • Rotation – Homogeneous coordinates – Matrix multiplications – Combining transformations Next time we’ll start to look at how we take these abstract shapes etc and get them onscreen
21 of 25 Exercises 1 Translate the shape below by (7, 2) y 6 5 4 (2, 3) 3 (1, 2) 2 (3, 2) 1 (2, 1) 0 1 2 3 4 5 6 7 8 9 10 x
22 of 25 Exercises 2 Scale the shape below by 3 in x and 2 in y y 6 5 4 (2, 3) 3 (1, 2) 2 (3, 2) 1 (2, 1) 0 1 2 3 4 5 6 7 8 9 10 x
23 of 25 Exercises 3 Rotate the shape below by 30° about the origin y 6 5 4 (7, 3) 3 (6, 2) 2 (8, 2) 1 (7, 1) 0 1 2 3 4 5 6 7 8 9 10 x
24 of 25 Exercise 4 Write out the homogeneous matrices for the previous three transformations Translation Scaling Rotation
25 of 25 Exercises 5 Using matrix multiplication calculate the rotation of the shape below by 45° about its centre (5, 3) y 5 (5, 4) 4 (4, 3) 3 (6, 3) 2 (5, 2) 1 0 1 2 3 4 5 6 7 8 9 10 x
26 of 25 Scratch y 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 x
27 of 25 Equations Translation: xnew = xold + dx ynew = yold + dy Scaling: xnew = Sx × xold ynew = Sy × yold Rotation xnew = xold × cosθ – yold × sinθ ynew = xold × sinθ + yold × cosθ
711d639260d866dad0aa4df0eda6e386.ppt