1
$\begingroup$

Given a $\mathbb{R}^2$ vector, $\vec{i} = \begin{pmatrix} 0 \\ 0 \end{pmatrix}$, what is the result of the following transformations?

($R(\theta)$ denotes a 2D rotation by $\theta$ degrees and $T(x,y)$ denotes a 2D translation on the $x$ axis and $y$ axis, respectively.)

$\vec{j} = R(130.0) T(8.0,3.0) \vec{i}$

$\vec{k} = T(8.0,3.0) R(130.0) \vec{i}$

(Original image here.)

I know how to perform the rotations of the vector. For doing the rotation $R(130.0) $ of a vector $\vec{i}$, I follow this formula: \begin{align*} ix &= x \cos(\theta) - y \sin(\theta) = \cos(130) - \sin(130) \\ iy &= x \sin(\theta) + y \cos(\theta) = \sin(130) + \cos(130) \end{align*} My question is, how exactly do I do the translation?

Do I somehow use a matrix with 3 rows and 3 columns? What is the process for translation?

$\endgroup$
1
$\begingroup$

You can't do a translation directly using a matrix but you can with vector addition.

Another option is to embed your vector space into a higher dimensional space using an affine matrix. To do this we restrict our attention to vectors of a particular form to make the matrix multiplication work. Lets work through an example.

For your problem if we want to add the column vector $v=(x,y)^T$ to the vector $b=(b_1,b_2)$ with matrix multiplication we would first map $v$ to $v'=(x,y,1)^T$ in $\mathbb{R}^3$ and we take the $4 \times 4$ identity matrix and insert $b$ into the last column to get a block matrix of the form $$ T=\left[ \begin{array}{c|c} I_{3 \times 3} & b \\ \hline 0 & 1 \end{array} \right]$$

Now we can see that $u'=Tv'=(x+b_1,y+b_2,1)$ and so we have vector addition using matrix multiplication in a higher dimensional space. This is one of the reasons transforms are essentially defined as $4 \times 4$ matrices in the OpenGL standard, the other being the perspective transform. Also, I will leave it to you to discover what happens when you replace the $I_{3 \times 3}$ matrix with some other $3 \times 3$ matrix like a rotation matrix or a projection.

$\endgroup$
3
$\begingroup$

A matrix cannot represent a translation. To see this, observe that given a matrix $ A $, we have $ A \mathbf{0} = \mathbf{0} $. However, a translation by a vector $ \mathbf{v} $ would send $ \mathbf{0} $ to $ \mathbf{v} $, so if $ \mathbf{v} \neq \mathbf{0} $ then $ A $ cannot represent translation by $ \mathbf{v} $.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.