Composite Transformation in 2-D graphics

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(rotatation 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 conditon 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

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.