Calculating the translation of a vector.

529 Views Asked by At

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?

2

There are 2 best solutions below

0
On BEST ANSWER

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.

0
On

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} $.