Complex Numbers as Rotations

We just built the rotation matrix R(\theta) the honest way — by chasing basis vectors. Now for the magic trick. There is a second number system in which rotation isn't a matrix at all, but a single multiplication: the complex numbers. It is a beautiful shortcut in its own right, and — more importantly for a game engine — it is the exact pattern that quaternions will extend to three dimensions.

A point in the plane is a complex number

Step 1 — identify the plane with the complex numbers. A 2-D point (x, y) and the complex number z = x + iy carry exactly the same information: the real part is the x-coordinate, the imaginary part the y-coordinate. So the screen is the complex plane in disguise:

(x, y) \;\longleftrightarrow\; z = x + iy.

Step 2 — pick a rotor. By Euler's formula, the unit-length complex number at angle \theta is

e^{i\theta} = \cos\theta + i\sin\theta,

a number sitting on the unit circle. Call it the rotor. The claim is that multiplying any point z by this rotor rotates it by \theta.

Multiplying by the rotor rotates the point

Step 3 — multiply e^{i\theta} by z = x + iy, expanding every term against every term:

(\cos\theta + i\sin\theta)(x + iy) = x\cos\theta + iy\cos\theta + ix\sin\theta + i^2 y\sin\theta.

Step 4 — use i^2 = -1 on the last term, turning i^2 y\sin\theta into -y\sin\theta:

= (x\cos\theta - y\sin\theta) + i\,(x\sin\theta + y\cos\theta).

Step 5 — read off the real and imaginary parts as a new point (x', y'):

x' = x\cos\theta - y\sin\theta, \qquad y' = x\sin\theta + y\cos\theta.

Step 6 — compare with the rotation matrix. Those are precisely the two rows of R(\theta)\,(x, y) from the previous page:

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}.

One complex multiplication packs the entire 2 \times 2 rotation matrix into a single number on the unit circle. 2-D rotation is complex multiplication. (This is the engine-room version of complex multiplication as rotation.)

Composing rotations is multiplying rotors

Step 7 — chain two rotations. Rotate by \beta, then by \alpha: that is multiplying by e^{i\beta}, then by e^{i\alpha}. The exponents just add:

e^{i\alpha}\,e^{i\beta} = e^{i(\alpha + \beta)}.

Composing rotations becomes multiplying their rotors, and the angles add automatically — the eight-line matrix proof from the previous page collapses to one rule of exponents. There are no trig identities to expand by hand; the algebra of the exponent does the bookkeeping for you. That economy is exactly why engines reach for this idea.

Identify a 2-D point (x, y) with the complex number z = x + iy. Then:

Hold onto the shape of what just happened: a rotation became multiply by a unit-length number, and composition became multiplying those numbers. That pattern is too good to leave in the plane — and it doesn't have to. To rotate three-dimensional space, engines enlarge the complex numbers into the quaternions, which add three imaginary units i, j, k (all squaring to -1) instead of one. A unit quaternion is a 3-D rotor, and multiplying by it spins 3-D space the way e^{i\theta} spins the plane.

That is why every modern game stores an object's orientation as a quaternion: rotations compose by a single product, interpolate smoothly, and never suffer the ordering headaches of stacked matrices. The plane was the rehearsal; quaternions are the performance.

Spin a point with one multiplication

The Argand plane below shows a fixed number z (blue) and the product e^{i\theta} z (orange). Drag \theta: the product swings around the origin on a circle of fixed radius — its length never changes, because the rotor has modulus 1 — while the angle \theta is simply added to the argument. Set \theta = 90^\circ to see the quarter-turn of multiplying by i.