2D Transformation
2D Transformation
In Computer graphics,
Transformation is a process of modifying and re-positioning the existing graphics.
Homogenous Coordinates
In Computer graphics,
2D Translation is a process of moving an object from one position to another in a two dimensional
plane.
Consider a point object O has to be moved from one position to another in a 2D plane.
Let-
• Initial coordinates of the object O = (Xold, Yold)
• New coordinates of the object O after translation = (Xnew, Ynew)
• Translation vector or Shift vector = (Tx, Ty)
Given a Translation vector (Tx, Ty)-
• Tx defines the distance the Xold coordinate has to be moved.
• Ty defines the distance the Yold coordinate has to be moved.
This translation is achieved by adding the translation coordinates to the old coordinates of the
object as-
• Xnew = Xold + Tx (This denotes translation towards X axis)
• Ynew = Yold + Ty (This denotes translation towards Y axis)
In Matrix form, the above translation equations may be represented as-
Problem-01:
Given a circle C with radius 10 and center coordinates (1, 4). Apply the translation with distance
5 towards X axis and 1 towards Y axis. Obtain the new coordinates of C without changing its
radius.
Solution-
Given-
• Old center coordinates of C = (Xold, Yold) = (1, 4)
• Translation vector = (Tx, Ty) = (5, 1)
Let the new center coordinates of C = (Xnew, Ynew).
Applying the translation equations, we have-
• Xnew = Xold + Tx = 1 + 5 = 6
• Ynew = Yold + Ty = 4 + 1 = 5
Thus, New center coordinates of C = (6, 5).
Problem-02:
Given a square with coordinate points A(0, 3), B(3, 3), C(3, 0), D(0, 0). Apply the translation with
distance 1 towards X axis and 1 towards Y axis. Obtain the new coordinates of the square.
Solution-
Given-
• Old coordinates of the square = A (0, 3), B(3, 3), C(3, 0), D(0, 0)
• Translation vector = (Tx, Ty) = (1, 1)
For Coordinates A(0, 3)
Let the new coordinates of corner A = (Xnew, Ynew).
Applying the translation equations, we have-
• Xnew = Xold + Tx = 0 + 1 = 1
• Ynew = Yold + Ty = 3 + 1 = 4
Thus, New coordinates of corner A = (1, 4).
For Coordinates B(3, 3)
Let the new coordinates of corner B = (Xnew, Ynew).
Applying the translation equations, we have-
• Xnew = Xold + Tx = 3 + 1 = 4
• Ynew = Yold + Ty = 3 + 1 = 4
Thus, New coordinates of corner B = (4, 4).
For Coordinates C(3, 0)
Let the new coordinates of corner C = (Xnew, Ynew).
Applying the translation equations, we have-
• Xnew = Xold + Tx = 3 + 1 = 4
• Ynew = Yold + Ty = 0 + 1 = 1
Thus, New coordinates of corner C = (4, 1).
For Coordinates D(0, 0)
Let the new coordinates of corner D = (Xnew, Ynew).
Applying the translation equations, we have-
• Xnew = Xold + Tx = 0 + 1 = 1
• Ynew = Yold + Ty = 0 + 1 = 1
Thus, New coordinates of corner D = (1, 1).
Thus, New coordinates of the square = A (1, 4), B(4, 4), C(4, 1), D(1, 1).
For homogeneous coordinates, the above scaling matrix may be represented as a 3 x 3 matrix as-
Problem-01:
Given a square object with coordinate points A(0, 3), B(3, 3), C(3, 0), D(0, 0). Apply the scaling
parameter 2 towards X axis and 3 towards Y axis and obtain the new coordinates of the object.
Solution-
Given-
• Old corner coordinates of the square = A (0, 3), B(3, 3), C(3, 0), D(0, 0)
• Scaling factor along X axis = 2
• Scaling factor along Y axis = 3
For Coordinates A(0, 3)
Let the new coordinates of corner A after scaling = (Xnew, Ynew).
Applying the scaling equations, we have-
• Xnew = Xold x Sx = 0 x 2 = 0
• Ynew = Yold x Sy = 3 x 3 = 9
Thus, New coordinates of corner A after scaling = (0, 9).
For Coordinates B(3, 3)
Let the new coordinates of corner B after scaling = (Xnew, Ynew).
Applying the scaling equations, we have-
• Xnew = Xold x Sx = 3 x 2 = 6
• Ynew = Yold x Sy = 3 x 3 = 9
Thus, New coordinates of corner B after scaling = (6, 9).
For Coordinates C(3, 0)
Let the new coordinates of corner C after scaling = (Xnew, Ynew).
Applying the scaling equations, we have-
• Xnew = Xold x Sx = 3 x 2 = 6
• Ynew = Yold x Sy = 0 x 3 = 0
Thus, New coordinates of corner C after scaling = (6, 0).
For Coordinates D(0, 0)
Let the new coordinates of corner D after scaling = (Xnew, Ynew).
Applying the scaling equations, we have-
• Xnew = Xold x Sx = 0 x 2 = 0
• Ynew = Yold x Sy = 0 x 3 = 0
Thus, New coordinates of corner D after scaling = (0, 0).
Thus, New coordinates of the square after scaling = A (0, 9), B(6, 9), C(6, 0), D(0, 0).
Derivation of scaling matrix based on arbitrary point
Step-01: Translate
tx = - Px, ty = - Py
1 0 𝑡𝑥 1 0 −𝑃𝑥
[T1] = |0 1 𝑡𝑦| = |0 1 −𝑃𝑦|
0 0 1 0 0 1
Step-02: Scaling about the origin
𝑆𝑥 0 0
[S0] = | 0 𝑆𝑦 0|
0 0 1
Step-03: Back Translate
tx = Px, ty = Py
1 0 𝑡𝑥 1 0 𝑃𝑥
[T2] = |0 1 𝑡𝑦| = |0 1 𝑃𝑦|
0 0 1 0 0 1
Step-04:
Scaling matrix about arbitrary point
[Sp] = [T2] [S0] [T1]
1 0 𝑃𝑥 𝑆𝑥 0 0 1 0 −𝑃𝑥
= |0 1 𝑃𝑦| | 0 𝑆𝑦 0| |0 1 −𝑃𝑦|
0 0 1 0 0 1 0 0 1
1 0 𝑃𝑥 𝑆𝑥 0 −𝑆𝑥. 𝑃𝑥
= |0 1 𝑃𝑦| | 0 𝑆𝑦 −𝑆𝑦. 𝑃𝑦|
0 0 1 0 0 1
𝑆𝑥 0 −𝑆𝑥. 𝑃𝑥 + 𝑃𝑥
=|0 𝑆𝑦 −𝑆𝑦. 𝑃𝑦 + 𝑃𝑦|
0 0 1
𝑆𝑥 0 𝑃𝑥(1 − 𝑆𝑥)
=| 0 𝑆𝑦 𝑃𝑦(1 − 𝑆𝑦)|
0 0 1
Problem:
Magnify the triangle with vertices A(0, 0), B(1, -1) and C(4, 2) to twice its size by keeping the
vertex C(4, 2) fixed.
Solution:
Here, scaling factor along X-axis, Sx= 2 and scaling factor along Y-axis, Sy=2 and the arbitrary
point Px=4 and Py=2
We know that,
𝑥′ 𝑆𝑥 0 𝑃𝑥(1 − 𝑆𝑥) 𝑥
′
[𝑦 ] = [ 0 𝑆𝑦 𝑃𝑦(1 − 𝑆𝑦)] [𝑦] (1)
1 0 0 1 1
For vertex A(0, 0) the equation (1) becomes
𝑥′ 2 0 4(1 − 2) 0
′
[𝑦 ] = [0 2 2(1 − 2)] [0]
1 0 0 1 1
2 0 −4 0
= [0 2 −2] [0]
0 0 1 1
0+0−4
= [0 + 0 − 2 ]
0+0+1
−4
= [−2]
1
Therefore A’ = (x’, y’) = (-4, -2)
For vertex B(1, -1) the equation (1) becomes
𝑥′ 2 0 4(1 − 2) 1
′
[𝑦 ] = [0 2 2(1 − 2)] [−1]
1 0 0 1 1
2 0 −4 1
= [0 2 −2] [−1]
0 0 1 1
2−0−4
= [0 − 2 − 2 ]
0+0+1
−2
= [−4]
1
Therefore B’ = (x’, y’) = (-2, -4)
2D Rotation in Computer Graphics-
In Computer graphics,
2D Rotation is a process of rotating an object with respect to an angle in a two dimensional plane
Consider a point object O has to be rotated from one angle to another in a 2D plane.
Let-
• Initial coordinates of the object O = (Xold, Yold)
• Initial angle of the object O with respect to origin = Φ
• Rotation angle = θ
• New coordinates of the object O after rotation = (Xnew, Ynew)
Problem-01:
Given a triangle with corner coordinates (0, 0), (1, 0) and (1, 1). Rotate the triangle by 90 degree
anticlockwise direction and find out the new coordinates.
Solution-
We rotate a polygon by rotating each vertex of it with the same rotation angle.
Given-
• Old corner coordinates of the triangle = A (0, 0), B(1, 0), C(1, 1)
• Rotation angle = θ = 90º
For Coordinates A(0, 0)
Let the new coordinates of corner A after rotation = (Xnew, Ynew).
Applying the rotation equations, we have-
Xnew
= Xold x cosθ – Yold x sinθ
= 0 x cos90º – 0 x sin90º
=0
Ynew
= Xold x sinθ + Yold x cosθ
= 0 x sin90º + 0 x cos90º
=0
Thus, New coordinates of corner A after rotation = (0, 0).
3√2 9√2
Therefore C’ = (x’, y’) = ( − 1, − 1)
2 2
Reflection on Y-axis
This reflection is achieved by using the following reflection equations-
• Xnew = -Xold
• Ynew = Yold
In Matrix form, the above reflection equations may be represented as-
For homogeneous coordinates, the above reflection matrix may be represented as a 3 x 3 matrix
as-
Problem
Given a triangle with coordinate points A(3, 4), B(6, 4), C(5, 6). Apply the reflection on the X axis
and obtain the new coordinates of the object.
Solution
Given-
• Old corner coordinates of the triangle = A (3, 4), B(6, 4), C(5, 6)
• Reflection has to be taken on the X axis
For Coordinates A(3, 4)
Let the new coordinates of corner A after reflection = (Xnew, Ynew).
Applying the reflection equations, we have-
• Xnew = Xold = 3
• Ynew = -Yold = -4
Thus, New coordinates of corner A after reflection = (3, -4).
For Coordinates B(6, 4)
Let the new coordinates of corner B after reflection = (Xnew, Ynew).
Applying the reflection equations, we have-
• Xnew = Xold = 6
• Ynew = -Yold = -4
Thus, New coordinates of corner B after reflection = (6, -4).
For Coordinates C(5, 6)
Let the new coordinates of corner C after reflection = (Xnew, Ynew).
Applying the reflection equations, we have-
• Xnew = Xold = 5
• Ynew = -Yold = -6
Thus, New coordinates of corner C after reflection = (5, -6).
Thus, New coordinates of the triangle after reflection = A (3, -4), B(6, -4), C(5, -6).
Problem
Given a triangle with coordinate points A(3, 4), B(6, 4), C(5, 6). Apply the reflection on the Y axis
and obtain the new coordinates of the object.
Solution
Given-
• Old corner coordinates of the triangle = A (3, 4), B(6, 4), C(5, 6)
• Reflection has to be taken on the Y axis
For Coordinates A(3, 4)
Let the new coordinates of corner A after reflection = (Xnew, Ynew).
Applying the reflection equations, we have-
• Xnew = -Xold = -3
• Ynew = Yold = 4
Thus, New coordinates of corner A after reflection = (-3, 4).
For Coordinates B(6, 4)
Let the new coordinates of corner B after reflection = (Xnew, Ynew).
Applying the reflection equations, we have-
• Xnew = -Xold = -6
• Ynew = Yold = 4
Thus, New coordinates of corner B after reflection = (-6, 4).
For Coordinates C(5, 6)
Let the new coordinates of corner C after reflection = (Xnew, Ynew).
Applying the reflection equations, we have-
• Xnew = -Xold = -5
• Ynew = Yold = 6
Thus, New coordinates of corner C after reflection = (-5, 6).
Thus, New coordinates of the triangle after reflection = A (-3, 4), B(-6, 4), C(-5, 6).
In Computer graphics,
2D Shearing is an ideal technique to change the shape of an existing object in a two dimensional
plane.
In a two dimensional plane, the object size can be changed along X direction as well as Y direction.
So, there are two versions of shearing-
1. Shearing in X direction
2. Shearing in Y direction
Consider a point object O has to be sheared in a 2D plane.
Let-
• Initial coordinates of the object O = (Xold, Yold)
• Shearing parameter towards X direction = Shx
• Shearing parameter towards Y direction = Shy
• New coordinates of the object O after shearing = (Xnew, Ynew)
Shearing in X-axis
Shearing in X axis is achieved by using the following shearing equations-
• Xnew = Xold + Shx x Yold
• Ynew = Yold
In Matrix form, the above shearing equations may be represented as-
For homogeneous coordinates, the above shearing matrix may be represented as a 3 x 3 matrix as-
Shearing in Y-axis
Shearing in Y axis is achieved by using the following shearing equations-
• Xnew = Xold
• Ynew = Yold + Shy x Xold
In Matrix form, the above shearing equations may be represented as-
For homogeneous coordinates, the above shearing matrix may be represented as a 3 x 3 matrix as-
Problem
Given a triangle with points (1, 1), (0, 0) and (1, 0). Apply shear parameter 2 on X axis and 2 on
Y axis and find out the new coordinates of the object.
Solution
Given-
• Old corner coordinates of the triangle = A (1, 1), B(0, 0), C(1, 0)
• Shearing parameter towards X direction (Shx) = 2
• Shearing parameter towards Y direction (Shy) = 2
Shearing in X-axis
For Coordinates A(1, 1)
Let the new coordinates of corner A after shearing = (Xnew, Ynew).
Applying the shearing equations, we have-
• Xnew = Xold + Shx x Yold = 1 + 2 x 1 = 3
• Ynew = Yold = 1
Thus, New coordinates of corner A after shearing = (3, 1).
For Coordinates B(0, 0)
Let the new coordinates of corner B after shearing = (Xnew, Ynew).
Applying the shearing equations, we have-
• Xnew = Xold + Shx x Yold = 0 + 2 x 0 = 0
• Ynew = Yold = 0
Thus, New coordinates of corner B after shearing = (0, 0).
For Coordinates C(1, 0)
Let the new coordinates of corner C after shearing = (Xnew, Ynew).
Applying the shearing equations, we have-
• Xnew = Xold + Shx x Yold = 1 + 2 x 0 = 1
• Ynew = Yold = 0
Thus, New coordinates of corner C after shearing = (1, 0).
Thus, New coordinates of the triangle after shearing in X axis = A (3, 1), B(0, 0), C(1, 0).
Shearing in Y-axis
For Coordinates A(1, 1)
Let the new coordinates of corner A after shearing = (Xnew, Ynew).
Applying the shearing equations, we have-
• Xnew = Xold = 1
• Ynew = Yold + Shy x Xold = 1 + 2 x 1 = 3
Thus, New coordinates of corner A after shearing = (1, 3).
For Coordinates B(0, 0)
Let the new coordinates of corner B after shearing = (Xnew, Ynew).
Applying the shearing equations, we have-
• Xnew = Xold = 0
• Ynew = Yold + Shy x Xold = 0 + 2 x 0 = 0