Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Graphics 2D Transformations. 2 of 74 Contents In today’s lecture we’ll cover the following: –Why transformations –Transformations Translation.

Similar presentations


Presentation on theme: "Computer Graphics 2D Transformations. 2 of 74 Contents In today’s lecture we’ll cover the following: –Why transformations –Transformations Translation."— Presentation transcript:

1 Computer Graphics 2D Transformations

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

3 3 of 74 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 4 of 74 Translation A translation is applied to an object by repositioning it along a straight-line path from one coordinate location to another. We translate a two-dimensional point by adding translation distances, t x and t y, to the original coordinate position (x,y) to move the point to a new position (x′, y′)

5 5 of 74 Translation The translation distance pair ( t x, t y ) is called a translation vector or shift vector

6 6 of 74 Translation This allows us to write the two-dimensional translation equations in the matrix form: where

7 7 of 74 Example Note: House shifts position relative to origin y x 0 1 1 2 2 3 4 5 6 7 8 9 10 3 4 5 6

8 8 of 74 Scaling A scaling transformation alters the size of an object. This operation can be carried out for polygons by multiplying the coordinate values (x,y) of each vertex by scaling factors s x, s y to produce the transformed coordinates (x′, y′):

9 9 of 74 Scaling Transformation Equations (Matrix Form): Or where S is the 2 by 2 scaling matrix.

10 10 of 74 Scaling Remarks: 1.When s x and s y are assigned the same value, a uniform scaling is produced that maintains relative object proportions. 2.Unequal values for s x and s y result in a differential scaling that is often used in design applications, where pictures are constructed from a few basic shapes that can be adjusted by scaling and positioning transformations.

11 11 of 74 Example Turning a square (a) into a rectangle (b) with scaling factors s x = 2 and s y =1.

12 12 of 74 Scaling When the scaling factors s x and s y are assigned the values less than 1, the objects move closer to the coordinate origin. Similarly, the values of s x and s y greater than 1, move coordinate positions farther from the origin.

13 13 of 74 Example

14 14 of 74 Scaling When the scaling factors s x and s y are assigned the values less than 1, the objects reduce in size. Similarly, the values of s x and s y greater than 1, enlarge the object size (see Fig. 7). Warning: Negative values of s x and s y are not permissible.

15 15 of 74 Scaling We can control the location of a scaled object by choosing a position, called the fixed point, that is to remain unchanged after the scaling transformation. Coordinates for the fixed point (x f, y f )can be chosen as one of the vertices, the object centroid, or any other position see next Figure.

16 16 of 74 Example

17 17 of 74 Scaling Transformation equations, with the fixed point ( x f, y f ), are calculated as: We can rewrite these scaling transformations to separate the multiplicative and the additive terms as follows: (13) (14)

18 18 of 74 Scaling The additive terms x f (1 - s x ) and y f (1-s y ) are constant for all points in the object. Polygons are scaled by applying transformations (14) to each vertex and then regenerating the polygon using the transformed vertices. Other objects are scaled by applying transformations (14) to the parameters defining the objects. For example, an ellipse in the standard position is resized by scaling the semi-major and semi-minor axes and redrawing the ellipse about the designated center coordinates.

19 19 of 74 Rotation The two-dimensional rotation is applied to an object by repositioning it along a circular path in the x-y plane. To generate a rotation, we specify a rotation angle θ and the position (x r,y r ) of the rotation point (or pivot point) about which object is rotated as shown in the Figure.

20 20 of 74 Rotation This transformation can also be described as a rotation about a rotation axis that is perpendicular to the x-y plane and passes through the pivot point.

21 21 of 74 Rotation Rotation about the Origin:

22 22 of 74 Rotation In the previous Figure: r – is the constant distance of the point from the origin. is the original angular position of the point from th horizontal is the rotation angle. Using the standard trigonometric identities, we can express the transformed coordinates in terms of the two angles as

23 23 of 74 Rotation The original coordinates of the point in polar coordinates are: x = r cos φ, y = r sin φ (5) Substituting expressions (5) into (4), we obtain the transformation equations for rotating a point at position (x, y) through and an angle about the origin: x' = x cos θ - y sin θ, y' = x sin θ + y cos θ (6)

24 24 of 74 Rotation Rotation Equations in the Matrix Form: P' = R. P (7) Where the rotation matrix is

25 25 of 74 Rotation of a point about an arbitrary pivot position is shown bellow:

26 26 of 74 Rotation Using the trigonometric relationships indicated by the two right triangles in the previous Figue, we can generalize equation (6) to obtain the transformation equations for rotation of a point about any specified rotation position (x r,y r ):

27 27 of 74 Rotation Rotation is a rigid-body transformations that move objects without deformation. Every point on an object is rotated through the same angle. A straight line segment is rotated by applying the rotation equation (9) to each of the two line endpoints and redrawing the line between the new endpoint positions.

28 28 of 74 Rotation A polygon is rotated by displaying each vertex using the specified rotation angle and then generating the polygon using the new vertices. A curve is rotated by repositioning the defining points for the curve and then redrawing it. An ellipse is rotated about its center coordinates simply by rotating the major and minor axes.

29 29 of 74 Example y x 0 1 1 2 2 3 4 5 6 7 8 9 10 3 4 5 6

30 30 of 74 Matrix Representations and Homogeneous Coordinates All transformations can be expressed in the following general Matrix Form: where –P and P′ are column vectors for the coordinate positions. –Matrix M 1 is a 2 by 2 array containing multiplicative factors. –Matrix M 2 is a 2-element column matrix, containing translational terms factors.

31 31 of 74 Matrix Representations and Homogeneous Coordinates More Convenient Method: Combine the multiplicative and translational terms into a single Matrix Representation, by expanding 2 by 2 Matrix Representation to 3 by 3 matrices.

32 32 of 74 Matrix Representations and Homogeneous Coordinates Represent each Cartesian coordinate position (x, y) with homogeneous coordinate triple (x h, y h,h), where

33 33 of 74 Matrix Representations and Homogeneous Coordinates Thus, a general homogeneous coordinate representation can also be written as (h.x, h.y, h). –h can be selected to be any nonzero value. –Thus, there is an infinite number of equivalent homogeneous representations for each coordinate point (x, y). –A convenient choice is h =1, so that (x, y) becomes (x, y, 1)

34 34 of 74 Matrix Representations and Homogeneous Coordinates For Translation Equation (13) can be expressed as:

35 35 of 74 Matrix Representations and Homogeneous Coordinates Or simply with T (t x,t y ) as the 3 by 3 translation matrix in Eqn. (15). Note: The inverse of the translation matrix is obtained by replacing the translation parameters tx and ty with their negatives: -tx and - ty.

36 36 of 74 Matrix Representations and Homogeneous Coordinates For Rotation Equation (13) can be expressed as:

37 37 of 74 Matrix Representations and Homogeneous Coordinates Or simply with R(θ) as 3 by 3 Rotation matrix in Eqn. (17). Note: The inverse of the Rotation matrix is obtained by replacing the Rotation angle θ with -θ.

38 38 of 74 Matrix Representations and Homogeneous Coordinates For Scaling Equation (13) can be expressed as:

39 39 of 74 Matrix Representations and Homogeneous Coordinates Or simply with S (s x,s y ) as 3 by 3 Scaling matrix in Eqn. (19). Note: The inverse of the scaling matrix is obtained by replacing the scaling parameters sx and sy with their multiplicative inverses 1/ s x and 1/ s y.

40 40 of 74 Why Homogeneous Coordinates? All of the transformations can be represented as 3*3 matrices. The use of matrix multiplication to calculate transformations is efficient.

41 41 of 74 Summary Homogeneous Translation The translation of a point by ( t x,t y ) can be written in matrix form as: Representing the point as a homogeneous column vector we perform the calculation as:

42 42 of 74 Remember Matrix Multiplication Recall how matrix multiplication takes place:

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

44 44 of 74 Summary Homogenous Coordinates Rotation:

45 45 of 74 Inverse Transformations Transformations can easily be reversed using inverse transformations

46 46 of 74 Composite Transformations With the matrix representations, we can set up matrix for any sequence of transformations as a composite transformation matrix by calculating the matrix product of the individual transformations. Forming products of transformation matrices is often referred to as a concatenation, or composition of matrices.

47 47 of 74 Composite Transformations Two successive Translations where P and P′ are represented as homogeneous coordinate column vectors.

48 48 of 74 Composite Transformations The composite Transformation matrix is as follows: Or

49 49 of 74 Composite Transformations Two successive Rotations The composite Transformation matrix is as follows:

50 50 of 74 Composite Transformations so that the final rotated coordinates can be calculated as:

51 51 of 74 Composite Transformations Two successive Scalings Or

52 52 of 74 Composite Transformations General Pivot-Point Rotation Rotations about any pivot point (x r,y r ) involves the following steps: Step 1. Translation of object so that Pivot Point (x r,y r ) is at origin. Step 2. Rotation about origin. Step 3. Translation of object so that the Pivot Point is returned to position (x r,y r ).

53 53 of 74 Example General Pivot-Point Rotation

54 54 of 74 Composite Transformations The matrix formulation is as follows:

55 55 of 74 Composite Transformations Or Where

56 56 of 74 Composite Transformations General Fixed-Point Scaling Scaling with respect to any selected fixed point (x f,y f ) involves the following steps: Step 1. Translate Object so that Fixed Point (x f,y f ) is at Origin. Step 2. Scale Object with respect to Origin Step 3. Translate Object so that Fixed Point is returned to position (x f,y f )

57 57 of 74 Example General Fixed-Point Scaling

58 58 of 74 Composite Transformations The matrix formulation is as follows: Where

59 59 of 74 Composite Transformations General Scaling Directions The parameters s x and s y scale objects along x and y directions. We can scale an object in other directions by rotating the object to align the desired scaling directions with the coordinate axes before applying the scaling transformations.

60 60 of 74 Example Suppose we want to apply scaling factors with values specified by parameters s 1 and s 2 in the directions shown in the Figure.

61 61 of 74 Composite Transformations To accomplish the scaling without changing the orientation of the object, we do the followings: Step 1. Perform a rotation so that the directions for s 1 and s 2 coincide with the x and y axes, respectively. Step 2. Apply scaling transformation. Step 3. Apply opposite rotation to return points to their original orientations.

62 62 of 74 Composite Transformations The matrix formulation is as follows: S

63 63 of 74 Example As an example, we turn a unit squre into a parallelogram by streching it along the diagonal from (0, 0) to (1, 1). We do the following 1.Rotate the diagonal onto y axis using θ=45 o 2.Double its length with the scaling values (s1,s2)=(1,2). 3.Rotate again to return the digonal to its original orientation.

64 64 of 74 Example

65 65 of 74 Composite Transformations Concatenation Properties For any three matrices, A, B, C A.B.C = (A.B ).C = A.(B.C) In general, for two matrices A and B A.B ≠ B.A

66 66 of 74 Example Composite Transformations Assume that we want to translate and rotate an object, we must be careful about the order in which the composite matrix is evaluated. Consider the next Figure. –(a) an object is first translated in the x direction, then rotated 45 0 counterclockwise. –(b) the object is first rotated 45 0 counterclockwise, then translated in the x direction.

67 67 of 74 Example Composite Transformations

68 68 of 74 Composite Transformations For some special cases – such as a sequence of transformations of the same kind – the multiplication of transformation matrices is commutative. Examples of transformation that could be done in any order: –Two successive rotations –Two successive translations –Two successive scaling –Rotation and uniform scaling (s x = s y )

69 69 of 74 Composite Transformations General Composite Transformations and Computational Efficiency General representation is as follows:

70 70 of 74 Composite Transformations where the four elements rs ij are the multiplicative rotation-scaling terms that involve only rotation angles and scaling factors. Elements tr sx and tr sy are the translational terms containing combinations of translation distances, pivot-point and fixed-point coordinates, rotation angles and scaling parameters.

71 71 of 74 Example Composite Transformations

72 72 of 74 Composite Transformations Although matrix equation (31) requires nine multiplications and six additions, the explicit calculations for the transformed coordinates are: Thus, we actually only need to perform four multiplications and four additions to transform coordinate positions.

73 73 of 74 Summary In this lecture we have taken a look at: –2D Transformations Translation Scaling Rotation –Homogeneous coordinates –Matrix multiplications –Composite transformations

74 74 of 74 Summary Equations Translation: x new = x old + dxy new = y old + dy Scaling: x new = Sx × x old y new = Sy × y old Rotation x new = x old × cosθ – y old × sinθ y new = x old × sinθ + y old × cosθ


Download ppt "Computer Graphics 2D Transformations. 2 of 74 Contents In today’s lecture we’ll cover the following: –Why transformations –Transformations Translation."

Similar presentations


Ads by Google