Download For Rotation - KFUPM Faculty List

Document related concepts

Jordan normal form wikipedia , lookup

Covariance and contravariance of vectors wikipedia , lookup

Determinant wikipedia , lookup

System of linear equations wikipedia , lookup

Eigenvalues and eigenvectors wikipedia , lookup

Matrix (mathematics) wikipedia , lookup

Non-negative matrix factorization wikipedia , lookup

Perron–Frobenius theorem wikipedia , lookup

Singular-value decomposition wikipedia , lookup

Gaussian elimination wikipedia , lookup

Cayley–Hamilton theorem wikipedia , lookup

Matrix calculus wikipedia , lookup

Orthogonal matrix wikipedia , lookup

Rotation matrix wikipedia , lookup

Matrix multiplication wikipedia , lookup

Four-vector wikipedia , lookup

Lorentz transformation wikipedia , lookup

Transcript
Computer Graphics
2D Transformations
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
Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)
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
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, tx and ty , to the original
coordinate position (x,y) to move the point to a
new position (x′, y′)
5
of
74
Translation
•The translation distance pair (tx , ty ) is called
a translation vector or shift vector
6
of
74
Translation
•This allows us to write the two-dimensional
translation equations in the matrix form:
•where
7
of
74
Example
y
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
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 sx , sy to produce the transformed
coordinates (x′, y′):
9
of
74
Scaling
•Transformation Equations (Matrix Form):
•Or
where S is the 2 by 2 scaling matrix.
10
of
74
Scaling
Remarks:
1. When sx and sy are assigned the same
value, a uniform scaling is produced
that maintains relative object proportions.
2. Unequal values for sx and sy 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
of
74
Example
•Turning a square (a) into a rectangle (b)
with scaling factors sx = 2 and sy =1.
12
of
74
Scaling
•When the scaling factors sx and sy are
assigned the values less than 1, the objects
move closer to the coordinate origin.
•Similarly, the values of sx and sy greater
than 1, move coordinate positions farther
from the origin.
13
of
74
Example
14
of
74
Scaling
•When the scaling factors sx and sy are
assigned the values less than 1, the objects
reduce in size.
•Similarly, the values of sx and sy greater
than 1, enlarge the object size (see Fig. 7).
•Warning: Negative values of sx and sy are
not permissible.
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 (xf , yf )can
be chosen as one of the vertices, the object
centroid , or any other position see next
Figure.
16
of
74
Example
17
of
74
Scaling
Transformation equations, with the fixed point
( xf , yf ), are calculated as:
(13)
We can rewrite these scaling transformations
to separate the multiplicative and the additive
terms as follows:
(14)
18
of
74
Scaling
•The additive terms xf (1 - sx) and yf (1-sy) 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
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 (xr,yr) of
the rotation point (or pivot point) about
which object is rotated as shown in the
Figure.
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
of
74
Rotation
•Rotation about the Origin:
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
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
of
74
Rotation
•Rotation Equations in the Matrix Form:
P' = R . P
•Where the rotation matrix is
(7)
25
of
74
•Rotation of a point about an arbitrary pivot
position is shown bellow:
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 (xr,yr):
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
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
of
74
Example
y
6
5
4
3
2

1

6
0
1
2
3
4
5
6
7
8
9
10
x
Matrix Representations
and Homogeneous Coordinates
30
of
74
•All transformations can be expressed in the
following general Matrix Form:
where
– P and P′ are column vectors for the
coordinate positions.
– Matrix M1 is a 2 by 2 array containing
multiplicative factors.
– Matrix M2 is a 2-element column matrix,
containing translational terms factors.
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
of
74
Matrix Representations
and Homogeneous Coordinates
•Represent each Cartesian coordinate
position (x, y) with homogeneous
coordinate triple (xh , yh ,h),
•where
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
of
74
Matrix Representations
and Homogeneous Coordinates
•For Translation
•Equation (13) can be expressed as:
Matrix Representations
and Homogeneous Coordinates
35
of
74
•Or simply
• with T (tx ,ty ) 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
of
74
Matrix Representations
and Homogeneous Coordinates
•For Rotation
•Equation (13) can be expressed as:
Matrix Representations
and Homogeneous Coordinates
37
of
74
•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
of
74
Matrix Representations
and Homogeneous Coordinates
•For Scaling
•Equation (13) can be expressed as:
Matrix Representations
and Homogeneous Coordinates
39
of
74
•Or simply
•with S (sx ,sy ) 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/ sx and 1/ sy .
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
of
74
Summary Homogeneous Translation
The translation of a point by (tx ,ty ) can be
written in matrix form as:
1
0

0
0
1
0
tx 
t y 
1 
Representing the point as a homogeneous
column vector we perform the calculation as:
1 0 t x   x  1* x  0 * y  t x *1  x  t x 
0 1 t    y   0 * x  1* y  t *1   y  t 
y   
y

  y
0 0 1  1   0 * x  0 * y  1*1   1 
42
of
74
Remember Matrix Multiplication
Recall how matrix multiplication takes place:
a b
d e

 g h
c   x  a * x  b * y  c * z 





f    y   d * x  e * y  f * z 
i   z   g * x  h * y  i * z 
43
of
74
Summary Homogenous Coordinates
To make operations easier, 2-D points are
written as homogenous coordinate column
vectors
1 0 t x   x   x  t x 
0 1 t    y    y  t  : P'  T (t , t ) P
Translation: 
y  
y
x y

0 0 1  1   1 
 sx 0 0  x   sx  x 
 0 sy 0   y    sy  y  : P'  S ( sx, sy ) P
Scaling: 
   

 0 0 1 1   1 
44
of
74
Summary Homogenous Coordinates
Rotation:
cos 
 sin 

 0
 sin 
cos 
0
0  x  cos   x  sin   y 
0   y   sin   x  cos   y  : P'  R( ) P

1 1  
1
45
of
74
Inverse Transformations
Transformations can easily be reversed
using inverse transformations
1 0  t x 
T 1  0 1  t y 
0 0 1 
 cos  sin  0


1
R   sin  cos  0
 0
0 1
1
s
 x
S 1   0

0



0 0

1 
0
sy 
0 1


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
of
74
Composite Transformations
•Two successive Translations
•where P and P′ are represented as
homogeneous coordinate column vectors.
48
of
74
Composite Transformations
•The composite Transformation matrix is as
follows:
•Or
49
of
74
Composite Transformations
•Two successive
Rotations
• The composite
Transformation matrix is
as follows:
R(1 ). R(2 )  R1 2 
(25)
50
of
74
Composite Transformations
•so that the final rotated coordinates can be
calculated as:
51
of
74
Composite Transformations
•Two successive Scalings
•Or
52
of
74
Composite Transformations
•General Pivot-Point Rotation
•Rotations about any pivot point (xr,yr)
involves the following steps:
•Step 1. Translation of object so that Pivot
Point (xr,yr) is at origin.
•Step 2. Rotation about origin.
•Step 3. Translation of object so that the
Pivot Point is returned to position
(xr,yr).
53
of
74
Example General Pivot-Point Rotation
54
of
74
Composite Transformations
•The matrix formulation is as follows:
55
of
74
Composite Transformations
•Or
•Where
56
of
74
Composite Transformations
•General Fixed-Point Scaling
•Scaling with respect to any selected fixed
point (xf,yf) involves the following steps:
•Step 1. Translate Object so that Fixed
Point (xf,yf) is at Origin.
•Step 2. Scale Object with respect to Origin
•Step 3. Translate Object so that Fixed
Point is returned to position (xf,yf)
57
of
74
Example General Fixed-Point Scaling
58
of
74
Composite Transformations
•The matrix formulation is as follows:
•Where
59
of
74
Composite Transformations
•General Scaling Directions
•The parameters sx and sy 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
of
74
Example
•Suppose we want to apply scaling factors
with values specified by parameters s1and s2
in the directions shown in the Figure.
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 s1 and s2 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
of
74
Composite Transformations
•The matrix formulation is as follows:
S
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
θ=45o
2. Double its length with the scaling values
(s1,s2)=(1,2).
3. Rotate again to return the digonal to its
original orientation.
64
of
74
Example
•
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
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 450 counterclockwise.
– (b) the object is first rotated 450
counterclockwise, then translated in the x
direction.
67
of
74
Example Composite Transformations
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 (sx = sy )
69
of
74
Composite Transformations
•General Composite Transformations and
Computational Efficiency
•General representation is as follows:
70
of
74
Composite Transformations
•where the four elements rsij are the
multiplicative rotation-scaling terms that
involve only rotation angles and scaling
factors.
Elements trsx and trsy are the translational
terms containing combinations of translation
distances, pivot-point and fixed-point
coordinates, rotation angles and scaling
parameters.
71
of
74
Example Composite Transformations
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
of
74
Summary
In this lecture we have taken a look at:
– 2D Transformations
• Translation
• Scaling
• Rotation
– Homogeneous coordinates
– Matrix multiplications
– Composite transformations
74
of
74
Summary 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θ