Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Graphics 3: 2D Transformations

Similar presentations


Presentation on theme: "Computer Graphics 3: 2D Transformations"— Presentation transcript:

1 Computer Graphics 3: 2D Transformations

2 Contents In today’s lecture we’ll cover the following:
Why transformations Transformations Translation Scaling Rotation Homogeneous coordinates Matrix multiplications Combining transformations

3 Why Transformations? In graphics, once we have an object described, transformations are used to move that object, scale it and rotate it Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)

4 Translation Simply moves an object from one position to another
xnew = xold + dx ynew = yold + dy Note: House shifts position relative to origin y x 1 2 3 4 5 6 7 8 9 10

5 Translation Example y x (2, 3) (1, 1) (3, 1) 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 (2, 3) Translate by (5, 3) x’ = x + dx y’ = y + dy (1, 1) (3, 1)

6 Scaling Scalar multiplies all coordinates
WATCH OUT: Objects grow and move! xnew = Sx × xold ynew = Sy × yold Note: House shifts position relative to origin y x 1 2 3 4 5 6 7 8 9 10

7 Scaling Example y (2, 3) (1, 1) (3, 1) 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 (2, 3) Scale by (2, 2) x’ = sx*x y’ = sy*y (1, 1) (3, 1)

8 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 x 1 2 3 4 5 6 7 8 9 10

9 Rotation Example y (4, 3) (3, 1) (5, 1) 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 (4, 3) xnew = xold × cosθ – yold × sinθ ynew = xold × sinθ + yold × cosθ 1 radian = 180/π degrees cos(π/6)=0.866 sin(π/6)=0.5 x’(4, 3) = 4*0.866 – 3*0.5 = 3.46 – 1.5 = 1.96 y’(4, 3) = 4* *0.866 = = 4.598 x’(3, 1) = 3*0.866 – 1*0.5 = – 0.5 = 2.098 y’(3, 1) = 3* *0.866 = = 2.366 x’(5, 1) = 5*0.866 – 1*0.5 = 4.33 – 0.5 = 3.83 y’(5, 1) = 5* *0.866 = = 3.366 (3, 1) (5, 1)

10 Homogeneous Coordinates
A point (x, y) can be re-written in homogeneous coordinates as (xh, yh, h) The homogeneous parameter h is a non- zero 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 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 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 Remember Matrix Multiplication
Recall how matrix multiplication takes place:

14 Homogenous Coordinates
To make operations easier, 2-D points are written as homogenous coordinate column vectors Translation: Scaling:

15 Homogenous Coordinates (cont…)
Rotation:

16 Inverse Transformations
Transformations can easily be reversed using inverse transformations

17 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 Combining Transformations (cont…)
1 2 3 4

19 Combining Transformations (cont…)
The three transformation matrices are combined as follows REMEMBER: Matrix multiplication is not commutative so order matters

20 Summary In this lecture we have taken a look at:
2D 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 on-screen

21 Exercises 1 Translate the shape below by (7, 2) y (2, 3) (1, 2) (3, 2)
1 2 3 4 5 6 7 8 9 10 (2, 3) (1, 2) (3, 2) (2, 1) x

22 Exercises 2 Scale the shape below by 3 in x and 2 in y y (2, 3) (1, 2)
1 2 3 4 5 6 7 8 9 10 (2, 3) (1, 2) (3, 2) (2, 1) x

23 Exercises 3 Rotate the shape below by 30° about the origin y (7, 3)
1 2 3 4 5 6 7 8 9 10 (7, 3) (6, 2) (8, 2) (7, 1) x

24 Exercise 4 Write out the homogeneous matrices for the previous three transformations Translation Scaling Rotation

25 Exercises 5 Using matrix multiplication calculate the rotation of the shape below by 45° about its centre (5, 3) x y 1 2 3 4 5 6 7 8 9 10 (5, 4) (6, 3) (4, 3) (5, 2)

26 Scratch y 1 2 3 4 5 6 7 8 9 10 x

27 Equations xnew = xold + dx ynew = yold + dy Translation: Scaling:
xnew = Sx × xold ynew = Sy × yold Rotation xnew = xold × cosθ – yold × sinθ ynew = xold × sinθ + yold × cosθ


Download ppt "Computer Graphics 3: 2D Transformations"

Similar presentations


Ads by Google