I read addition and multiplication with complex numbers can be represented as translation and rotation in a 2D plane.

I am using this to move around objects on the screen. I have an offset number, that I multiply by a number representing an angle. I then use the offset to move an object in a certain direction.

To draw the actual object, I came across affine transformations, represented as a 3x3 matrix. I was wondering if I could apply these transformations directly to the matrix.

I can't say I fully understand matrix multiplication, but as far as I can tell, translation can be expressed using matrix multiplication.

So what about rotation a point around an origin?

  • $\begingroup$ Consider the matrix $\begin{pmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{pmatrix}$. $\endgroup$ – Zhen Lin Feb 18 '12 at 11:18
  • $\begingroup$ Very related... $\endgroup$ – J. M. is a poor mathematician Feb 18 '12 at 11:34
  • 2
    $\begingroup$ Also: the matrix multiplication view of translation only works if you use homogeneous coordinates. Otherwise, you can only translate by adding an appropriate vector to your original vector. $\endgroup$ – J. M. is a poor mathematician Feb 18 '12 at 11:37

If you have a point $(x,y)$ (equivalently, $z=x+yi$) represented by $\begin{bmatrix}x\\y\\1\end{bmatrix}$, you can translate it by the vector $\langle t_x,t_y\rangle$ (equivalently, adding $t_x+t_yi$) by multiplying: $$\begin{bmatrix}x'\\y'\\1\end{bmatrix}=\begin{bmatrix}1&0&t_x\\0&1&t_y\\0&0&1\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix}.$$ You can rotate it by $\theta$ about the origin (equivalently, multiply by $e^{i\theta}$) by multiplying: $$\begin{bmatrix}x'\\y'\\1\end{bmatrix}=\begin{bmatrix}\cos\theta&-\sin\theta&0\\\sin\theta&\cos\theta&0\\0&0&1\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix}.$$

If you represent $(x,y)$ as $\begin{bmatrix}x\\y\end{bmatrix}$, translation by $\langle t_x,t_y\rangle$ can be done with addition: $$\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}x\\y\end{bmatrix}+\begin{bmatrix}t_x\\t_y\end{bmatrix}$$ and rotation with multiplication: $$\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}.$$


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.