Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Composite Transformation in 2-D graphics

  • Difficulty Level : Expert
  • Last Updated : 06 Aug, 2021

Prerequisite – Basic types of 2-D Transformation : 
 

  1. Translation
  2. Scaling
  3. Rotation
  4. Reflection
  5. 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, A, C, D looks like : 
 

Square_given(Fig.1)

First, we perform scaling transformation over a 2-D object : 

Representation of scaling condition : 
 

\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}Sx&0\\0&Sx\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\

For coordinate O(0, 0) : 
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}

For coordinate B(4, 0) : 
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}

For coordinate C(4, 4) : 
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}

For coordinate D(0, 4) : 
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}

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 :

\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

For coordinate O(0, 0) : 
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}

For coordinate B(2, 0) : 
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}

For coordinate C(2, 2) : 
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}

For coordinate D(0, 2) : 
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}

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 
 

\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\\\[1ex]

For coordinate O(0, 0) : 
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}

For coordinate B'(0, 0) : 
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}

For coordinate C'(0, 0) : 
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}

For coordinate D'(0, 0) : 
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}

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 : 

\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}

*Now, we multiplied Resultant 2-D matrix(R1) with the third last given Reflecting condition of transformation(R2) to get Resultant(R) : 

\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}

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 : 
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}

Second, transformed coordinate B'(4, 0) is : 
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}

Third transformed coordinate C'(4, 4) is : 
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}

Fourth transformed coordinate D'(0, 4) is : 
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}

The final result of the transformed object that you get would be same as above : 

 

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!