# Rotation is combination of shearing and scaling

1. Nov 14, 2011

### phiby

I have read at a lot of places that in 2D transformations rotation is a combination of scaling and simultaneous shear?

What exactly does this mean & what's the proof for this?

2. Nov 15, 2011

### Stephen Tashi

Are you familiar with how linear tranformations are represented (one might also say "implemented") by matrices? The statement appears to be a claim that a matrix which represents a rotation can be expressed as the product of a matrix representing scaling times a matrix representing shear.

3. Nov 15, 2011

### phiby

Yes, absolutely.

For rotation of angle θ,
you could use
Scaling factors
Sx = Sy = cosθ
Shear factors
Shx = -sinθ
Shy = sinθ

This would make rotation as a combination of scaling and shear.

But I don't see what's the relevance of this. i.e. what's the point of mentioning this?

As examples of different places where I read this statement

http://docstore.mik.ua/orelly/java-ent/jfc/ch04_11.htm

http://techbase.kde.org/Development/Architecture/KDE3/Low-level_Graphics

etc etc

4. Nov 15, 2011

### Deveno

$$A = \begin{bmatrix}\cos\theta&0\\0&\cos\theta \end{bmatrix}$$

is a scaling matrix (from a factor of 0 to 1).

$$B = \begin{bmatrix}1&\tan\theta\\-\tan\theta&1\end{bmatrix}$$

is a (dual) shear matrix (with a distortion factor of 1 to ∞).

AB is a rotation matrix.

for some graphical applications of matrices (in computer games, for example), matrices are used to quickly manipulate objects in well-known ways (rotating, stretching to fit, shape distortion to accomodate perspective, etc.). the popular windows program "microsoft paint" illustrates how some of these are implemented (for 2-D operations, 2x2 matrices are often "block-embedded" in 3x3 matrices, so affine transformations (changing the origin), can be used as well, while maintaining linearity). the graphical "handles" or "hot spots" one sees in various kinds of graphics, are often keyed to specific linear (or affine) transformations.

linear algebra is a computer programmer's friend, and the different ways of describing different operations often depend on what particular subroutines are available in the software package.