Why Are Quaternions So Weird?

When we move from two dimensions to three dimensions, our use of Cartesian coordinates requires only one additional number. In two dimensions we represent points as (x, y) and in three dimensions we use (x, y, z).

It seems reasonable that extending complex numbers from two dimensions to three dimensions should be equally straightforward. If it's possible to represent a two-dimensional point as the complex number a + bi, we should be able to represent a three-dimensional point as a + bi + cj. One additional axis implies one more imaginary number, right?

Not quite. If the extension of complex numbers to three dimensions were this simple, somebody surely would have come up with a solution long before William Rowan Hamilton. ...

Get 3D Programming for Windows® now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.