Composite Transformation in 2-D graphics
Last Updated :
15 Apr, 2024
Prerequisite – Basic types of 2-D Transformation :Â
Â
- Translation
- Scaling
- Rotation
- Reflection
- Shearing of a 2-D object
Composite Transformation :Â
As the name suggests itself Composition, here we combine two or more transformations into one single transformation that is equivalent to the transformations that are performed one after one over a 2-D object.Â
Example :Â
Consider we have a 2-D object on which we first apply transformation T1 (2-D matrix condition) and then we apply transformation T2(2-D matrix condition) over the 2-D object and the object get transformed, the very equivalent effect over the 2-D object we can obtain by multiplying T1 & T2 (2-D matrix conditions) with each other and then applying the T12 (resultant of T1 X T2) with the coordinates of the 2-D image to get the transformed final image.Â
Problem :Â
Consider we have a square O(0, 0), B(4, 0), C(4, 4), D(0, 4) on which we first apply T1(scaling transformation) given scaling factor is Sx=Sy=0.5 and then we apply T2(rotation transformation in clockwise direction) it by 90*(angle), in last we perform T3(reflection transformation about origin).Â
Ans : The square O, B, C, D looks like :Â
Â
Square_given(Fig.1)
First, we perform scaling transformation over a 2-D object :Â
Representation of scaling condition :Â
Â
[Tex]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}Sx&0\\0&Sx\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\[/Tex]
For coordinate O(0, 0) :Â
[Tex]O\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}Â Â [/Tex]
For coordinate B(4, 0) :Â
[Tex]B\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}4\\0\end{bmatrix}\\\\[1ex]B\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}2\\0\end{bmatrix}Â Â [/Tex]
For coordinate C(4, 4) :Â
[Tex]C\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}4\\4\end{bmatrix}\\\\[1ex]C\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}2\\2\end{bmatrix}Â Â [/Tex]
For coordinate D(0, 4) :Â
[Tex]D\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}0\\4\end{bmatrix}\\\\[1ex]D\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\2\end{bmatrix}Â Â [/Tex]
2-D object after scaling :Â
Â
Fig.2
*Now, we’ll perform rotation transformation in clockwise-direction on Fig.2 by 90θ:Â
The condition of rotation transformation of 2-D object about origin is :
[Tex]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}cosθ&sinθ\\-sinθ&cosθ\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\\\[1ex] Cos90 = 0 \\ sin90=1[/Tex]
For coordinate O(0, 0) :Â
[Tex]O\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}Â Â [/Tex]
For coordinate B(2, 0) :Â
[Tex]B\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}2\\0\end{bmatrix}\\\\[1ex]B\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\-2\end{bmatrix}Â Â [/Tex]
For coordinate C(2, 2) :Â
[Tex]C\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}2\\2\end{bmatrix}\\\\[1ex]C\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}2\\-2\end{bmatrix}Â Â [/Tex]
For coordinate D(0, 2) :Â
[Tex]D\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}0\\2\end{bmatrix}\\\\[1ex]D\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}2\\0\end{bmatrix}Â Â [/Tex]
2-D object after rotating about origin by 90* angle :Â
Â
Fig.3
*Now, we’ll perform third last operation on Fig.3, by reflecting it about origin :Â
The condition of reflecting an object about origin isÂ
Â
[Tex]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\\\[1ex][/Tex]
For coordinate O(0, 0) :Â
[Tex]O\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}Â Â [/Tex]
For coordinate B'(0, 0) :Â
[Tex]B’\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&-1\\-1&0\end{bmatrix}*\begin{bmatrix}0\\2\end{bmatrix}\\\\[1ex]B’\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}-2\\0\end{bmatrix}Â Â [/Tex]
For coordinate C'(0, 0) :Â
[Tex]C’\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}2\\-2\end{bmatrix}\\\\[1ex]C’\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}-2\\2\end{bmatrix}Â Â [/Tex]
For coordinate D'(0, 0) :Â
[Tex]D’\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}0\\-2\end{bmatrix}\\\\[1ex]D’\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\2\end{bmatrix}Â Â [/Tex]
The final 2-D object after reflecting about origin, we get :Â
Â
Fig.4
Note : The above finale result of Fig.4, that we get after applying all transformation one after one in a serial manner. We could also get the same result by combining all the transformation 2-D matrix conditions together and multiplying each other and get a resultant of multiplication(R). Then, applying that 2D-resultant matrix(R) at each coordinate of the given square(above). So, you will get the same result as you have in Fig.4.Â
Solution using Composite transformation :Â
*First we multiplied 2-D matrix conditions of Scaling transformation with Rotation transformation :Â
[Tex]\begin{bmatrix}R_1\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}0&1\\-1&0\end{bmatrix}\\\\[1ex]\begin{bmatrix}\\R_1\end{bmatrix}=\begin{bmatrix}0&0.5\\-0.5&0\end{bmatrix}Â Â [/Tex]
*Now, we multiplied Resultant 2-D matrix(R1) with the third last given Reflecting condition of transformation(R2) to get Resultant(R) :Â
[Tex]\begin{bmatrix}R\end{bmatrix}=\begin{bmatrix}0&0.5\\-0.5&0\end{bmatrix}*\begin{bmatrix}-1&0\\0&-1\end{bmatrix}\\\\[1ex]\begin{bmatrix}\\R\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}Â Â [/Tex]
Now, we’ll applied the Resultant(R) of 2d-matrix at each coordinate of the given object (square) to get the final transformed or modified object.Â
First transformed coordinate O(0, 0) is :Â
[Tex]O\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}Â Â [/Tex]
Second, transformed coordinate B'(4, 0) is :Â
[Tex]B’\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}4\\0\end{bmatrix}\\\\[1ex]B’\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}0\\2\end{bmatrix}Â Â [/Tex]
Third transformed coordinate C'(4, 4) is :Â
[Tex]C’\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}4\\4\end{bmatrix}\\\\[1ex]C’\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}-2\\2\end{bmatrix}Â Â [/Tex]
Fourth transformed coordinate D'(0, 4) is :Â
[Tex]D’\begin{bmatrix}x’\\y’\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}0\\4\end{bmatrix}\\\\[1ex]D’\begin{bmatrix}\\x’\\y’\end{bmatrix}=\begin{bmatrix}-2\\0\end{bmatrix}Â Â [/Tex]
The final result of the transformed object that you get would be same as above :Â
Â
Â
Share your thoughts in the comments
Please Login to comment...