2D Transformation
2D Transformation
2D Transformation
Homogenous Coordinates
To perform a sequence of transformation such as translation followed by rotation and
scaling, we need to follow a sequential process −
To shorten this process, we have to use 3×3 transformation matrix instead of 2×2
transformation matrix. To convert a 2×2 matrix to 3×3 matrix, we have to add an
extra dummy coordinate W.
In this way, we can represent the point by 3 numbers instead of 2 numbers, which is
called Homogenous Coordinate system. In this system, we can represent all the
transformation equations in matrix multiplication. Any Cartesian point PX, Y can be
converted to homogenous coordinates by P’ (Xh, Yh, h).
Translation
A translation moves an object to a different position on the screen. You can translate
a point in 2D by adding translation coordinate (tx, ty) to the original coordinate X, Y
to get the new coordinate ′
X ,Y
′
.
From the above figure, you can write that −
X’ = X + tx
Y’ = Y + ty
The pair (tx, ty) is called the translation vector or shift vector. The above equations
can also be represented using the column vectors.
′
[X] [X ] [tx ]
P = p' = ′
T=
[Y ] [Y ] [ty ]
We can write it as −
P’ = P + T
Rotation
In rotation, we rotate the object at particular angle θ theta from its origin. From the
following figure, we can see that the point PX, Y is located at angle φ from the
horizontal X coordinate with distance r from the origin.
Let us suppose you want to rotate it at the angle θ. After rotating it to a new
location, you will get a new point P’ ′
X ,Y
′
.
Using standard trigonometric the original coordinate of point PX, Y can be
represented as −
X = r cos ϕ. . . . . . (1)
Y = r sin ϕ. . . . . . (2)
′
x = r cos (ϕ + θ) = r cos ϕ cos θ − r sin ϕ sin θ. . . . . . . (3)
′
y = r sin (ϕ + θ) = r cos ϕ sin θ + r sin ϕ cos θ. . . . . . . (4)
′
x = x cos θ − y sin θ
′
y = x sin θ + y cos θ
′ ′
cosθ sinθ
[X Y ] = [XY ] [ ] OR
−sinθ cosθ
P’ = P . R
cosθ sinθ
R = [ ]
−sinθ cosθ
The rotation angle can be positive and negative.
For positive rotation angle, we can use the above rotation matrix. However, for
negative angle rotation, the matrix will change as shown below −
cos(−θ) sin(−θ)
R = [ ]
−sin(−θ) cos(−θ)
cosθ −sinθ
= [ ] (∵ cos(−θ) = cosθ and sin(−θ) = −sinθ)
sinθ cosθ
Scaling
To change the size of an object, scaling transformation is used. In the scaling
process, you either expand or compress the dimensions of the object. Scaling can be
achieved by multiplying the original coordinates of the object with the scaling factor
to get the desired result.
Let us assume that the original coordinates are X, Y , the scaling factors are (SX,
SY), and the produced coordinates are ′
X ,Y
′
. This can be mathematically
represented as shown below −
The scaling factor SX, SY scales the object in X and Y direction respectively. The
above equations can also be represented in matrix form as below −
′
X X Sx 0
( ) = ( )[ ]
′
Y Y 0 Sy
OR
P’ = P . S
Where S is the scaling matrix. The scaling process is shown in the following figure.
If we provide values less than 1 to the scaling factor S, then we can reduce the size
of the object. If we provide values greater than 1, then we can increase the size of
the object.
Reflection
Reflection is the mirror image of original object. In other words, we can say that it is
a rotation operation with 180°. In reflection transformation, the size of the object
does not change.
The following figures show reflections with respect to X and Y axes, and about the
origin respectively.
Shear
A transformation that slants the shape of an object is called the shear
transformation. There are two shear transformations X-Shear and Y-Shear. One
shifts X coordinates values and other shifts Y coordinate values. However; in both
the cases only one coordinate changes its coordinates and other preserves its values.
Shearing is also termed as Skewing.
X-Shear
The X-Shear preserves the Y coordinate and changes are made to X coordinates,
which causes the vertical lines to tilt right or left as shown in below figure.
The transformation matrix for X-Shear can be represented as −
1 shx 0
⎡ ⎤
X sh = ⎢ 0 1 0⎥
⎣ ⎦
0 0 1
Y' = Y + Shy . X
X’ = X
Y-Shear
The Y-Shear preserves the X coordinates and changes the Y coordinates which
causes the horizontal lines to transform into lines which slopes up or down as shown
in the following figure.
X’ = X + Shx . Y
Y’ = Y
Composite Transformation
If a transformation of the plane T1 is followed by a second plane transformation T2,
then the result itself may be represented by a single transformation T which is the
composition of T1 and T2 taken in that order. This is written as T = T1∙T2.
A combined matrix −
Translation
Scaling
Shearing
Rotation
Reflection
For example, to rotate an object about an arbitrary point (Xp, Yp), we have to carry
out three steps −
Translate point (Xp, Yp) to the origin.