A Geometric Interpretation of the 3D Cross Product

In this short post I want to explore a simple and hopefully intuitive geometric interpretation of a common vector operation; the 3D cross product.

We’ll start by breaking down a somewhat related operation in 2D, sometimes called the perpendicular dot product or just perp dot product. It describes the area A of a parallelogram spanned by two vectors \vec{u} = (a, b) and \vec{v} = (c, d) , and is given by the determinant of a 2×2 matrix:

A = \begin{vmatrix} a & c \\ b & d \end{vmatrix} =  ad - cb

One way to interpret this is that we are subtracting the area of the rectangle cb from the area of rectangle ad

The perp dot product can be interpreted as the difference of two rectangles.

We can put together a simple visual proof by cutting out and rearranging portions of the larger rectangle to show that the smaller rectangle simply cancels out the extra and overlapping areas:

Subtracting the smaller rectangle cb compensates for the extra area introduced by rectangle ad . The area highlighted in red indicates an overlap between the parallelogram and cb .

Notice that the area of a triangle with two sides given by the vectors \vec{u} and \vec{v} is exactly half the area of the associated parallelogram. We’ll revisit this property soon.

A = \dfrac{1}{2}(ad - cb)

The vectors \vec{u} and \vec{v} define a triangle as well as a parallelogram of exactly twice the triangle’s area.

In Three Dimensions

We can take the geometric interpretation of the perp dot product to get a more intuitive understanding of the 3D cross product, albeit with a few more steps. The cross product of two vectors \vec{u} and \vec{v} returns another vector whose magnitude describes the area A of the parallelogram spanned by \vec{u} and \vec{v} in \mathbb{R}^3 :

A =  \| \vec{u} \times \vec{v} \| = \begin{Vmatrix} u_y v_z - u_z v_y \\ u_z v_x - u_x v_z \\ u_x v_y - u_y v_x \end{Vmatrix}

Notice that the cross product operation can be interpreted as three separate perp dot products describing the projection of our original parallelogram onto each of the three coordinate planes. For example, the operation u_x u_y - v_y v_x gives the area of the original parallelogram after being projected onto the xy plane.

The projection of the 3D parallelogram in green onto the bottom plane produces the 2D parallelogram in blue.

The next step is to intuit what it means to take the magnitude of a vector whose components represent the areas of these projected parallelograms. Recall the formula for taking the magnitude of a 3D vector \vec{u} :

\| \vec{u} \| = \sqrt{{u_x}^2 +{ u_y}^2 + {u_z}^2}

This looks like the formula for Euclidean distance, which is derived from the Pythagorean theorem most of us are familiar with. Just to quickly recap, Pythagoras’ theorem states that the squared length of the hypotenuse c of a right angled triangle is given by the sum of squared lengths of the legs, a and b .

a^2 + b^2 = c^2

Or, in terms of the length c :

c = \sqrt{a^2 + b^2}

If we choose to express c as a 2D vector \vec{c} , notice how the projection of \vec{c} onto each of the two coordinate axes themselves form a right angled triangle.

Thus, by the Pythagorean theorem:

\| \vec{c} \| = \sqrt{{c_x}^2 + {c_y}^2}

It turns out that this actually generalises to higher dimensions. If we take a triangle in 3D, project it onto each of the three coordinate planes and find the area of each projected triangle, the sum of squares of those areas is equal to the squared area of the original triangle!

The 3D triangle in green is projected onto each of the three coordinate planes, producing three 2D triangles shown in blue.

We can show that this is true by taking what we know about the perp dot product and Pythagoras’ theorem to get the area of a parallelogram just as we would by using the cross product. Let ABC be a triangle in \mathbb{R}^3 which we express in terms of two vectors representing the edges \vec{AB} and \vec{AC} . Earlier we established that the area of a triangle is half that of its associated parallelogram, which can be found by using the perp dot product for a parallelogram in \mathbb{R}^2 . Take the area of each triangle resulting from the projection of ABC onto each coordinate plane and plug them into Pythagoras’ theorem:

\Delta ABC = \sqrt{ \left( {{\dfrac{1}{2} \begin{vmatrix} \vec{AB}_x & \vec{AC}_x \\ \vec{AB}_y & \vec{AC}_y \end{vmatrix}}}\right)^2 + \left({{\dfrac{1}{2} \begin{vmatrix} \vec{AB}_y & \vec{AC}_y \\ \vec{AB}_z & \vec{AC}_z \end{vmatrix}}}\right)^2 + \left({{\dfrac{1}{2} \begin{vmatrix} \vec{AB}_z & \vec{AC}_z \\ \vec{AB}_x & \vec{AC}_x \end{vmatrix}}}\right)^2}

We can factor and simplify to take the \frac{1}{2} term out of the square root:

\Delta ABC = \dfrac{1}{2} \sqrt{ {{ \begin{vmatrix} \vec{AB}_x & \vec{AC}_x \\ \vec{AB}_y & \vec{AC}_y \end{vmatrix}}}^2 + {{\begin{vmatrix} \vec{AB}_y & \vec{AC}_y \\ \vec{AB}_z & \vec{AC}_z \end{vmatrix}}}^2 + {{\begin{vmatrix} \vec{AB}_z & \vec{AC}_z \\ \vec{AB}_x & \vec{AC}_x \end{vmatrix}}}^2}

Which we find is equivalent to the following according to the definition of the cross product:

\Delta ABC = \dfrac{1}{2} \| \vec{AB} \times \vec{AC} \|

Double the result and you have the area of the parallelogram spanned by \vec{AB} and \vec{AC} .

Leave a Comment