I am trying to learn about rotation quaternions, and in the process I am currently looking at 2D vector multiplication.

To avoid confusion with other types of multiplication, this is the basic form I am talking about: (a + bi)(c + di). i is imaginary.

For simplicity, lets assume all the vectors we multiply are unit vectors. So, any two 2D vectors that get multiplied together will produce a new unit vector but it's direction will be different.

From playing around with unit vector multiplication, it seems that you can predict the answer by finding the angle both of the operands make with the positive X axis, adding those angles together, and the answer will be the corresponding unit vector for the combined angle.

However, I don't think this is the correct way of thinking about vector multiplication. Thinking of it this way, it's as if the unit vectors store a rotation, and when you multiply them, you add the rotations. However, the unit vectors actually store a direction not a rotation, rotation only comes into play when you predetermine that the X axis as a unrotated starting point.

What is the correct way of thinking about vector multiplication?

  • $\begingroup$ What's your definition of "vector multiplication"? $\endgroup$ Mar 13, 2013 at 0:42
  • $\begingroup$ @SantiagoCanez en.wikipedia.org/wiki/Normed_division_algebra : essentially this (a + bi)(c + di) $\endgroup$ Mar 13, 2013 at 0:52
  • $\begingroup$ Why do you draw such a hard distinction between a direction and a rotation? When you multiply two 2D vectors (really complex numbers) you multiply their lengths and add their directions. $\endgroup$ Mar 13, 2013 at 1:02
  • 1
    $\begingroup$ I think I understand where you're coming from. With vectors in general, the $x$-axis is not special, in that you can always change your basis and make some other directions your axes. So defining things in terms of the $x$-axis seems arbitrary and suspicious. But multiplication does make the $x$-axis special: the unit vector in the positive $x$-axis is the only vector which when multiplied with any other vector gives the other vector back. This also means that you're no longer allowed to change your basis: if the transformation is denoted $T(u)$, then $T(u)T(v)\ne T(uv)$. $\endgroup$
    – user856
    Mar 13, 2013 at 2:03
  • 1
    $\begingroup$ You should get out of the habit of calling this multiplication of 2D vectors, though, precisely because it does not behave like a natural operation on vectors. What you're doing is interpreting vectors as complex numbers, doing multiplication of complex numbers, and then reinterpreting the result as a vector. As an analogy, there's no such thing as addition of bit strings; you can only interpret bit strings as numbers and then add the numbers, but that depends on the choice of how you interpret the bits as unsigned, two's complement, or floating-point, etc. $\endgroup$
    – user856
    Mar 13, 2013 at 2:09

1 Answer 1


You're referring to complex multiplication. I hope I'm not being too pedantic here, but recall that a complex number $z$ has two common representations: $$ z = a + bi \text{ for unique } a,b \in \mathbb R$$ and $$ z = re^{i\theta} \text{ for unique } r > 0,\, \theta \in [0,2\pi). $$

The latter representation, called polar form, makes explicit the modulus $r = |z|$ (also called the length or absolute value of $z$), and the argument $\theta$, which is the angle $z$ makes with the positive $x$-axis. It also makes multiplication of complex numbers more transparent: you simply multiply the moduli and add (mod $2\pi$) the arguments.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .