Body shadow

Surely you have also played with shadows. What shapes can be created with one hand in this way? Shadow theater is exactly about that. This question is also very interesting from a mathematical point of view: Given a geometric three-dimensional body. What shadow can it cast when rotated in different ways relative to the light source?

A cube, for example, can cast a square shadow, but also the shadow of a regular hexagon. A sphere, on the other hand, always casts the shadow of a circle. What shadows can a given triangle cast? This is the subject of the exhibit “All triangles are equal”. After some trial and error, you can see that any triangle can cast the shadow of an equilateral triangle (if rotated appropriately with respect to the light source).

Figure 1: The exhibit — here the shadow of a cube is examined

And now … the mathematics of it:

Mathematically, behind a shadow there is a so-called projection. Given is a point p in the three-dimensional space \mathbb R^3 and a projection plane E, which does not contain p. The point p corresponds to the (ideal) light source and E is the screen onto which is projected. Any point x\in\mathbb R^3 is now projected onto the screen E by the ray s which starts from p and passes through x (we still have to require that x\neq p, otherwise the ray just mentioned is not unique). We thus obtain a mapping \pi\colon\mathbb R^3\setminus{p}\to E, where \pi(x) is defined as the just mentioned intersection E\cap s of the ray starting from p and passing through x. This mapping is called central projection in the point p onto the plane E. Exactly this situation occurs, for example, when the sun casts a shadow on a house wall. Here, however, the sun is very far away. If we idealize this, we would say that the point p is no longer in the surrounding three-dimensional space, but in infinite distance (in the so-called projective closure, of the three-dimensional space \mathbb R^3). Then all rays emanating from p are parallel, which is why \pi, is then called a parallel projection. The mapping \pi is also idempotent, i.e. \pi(\pi(x))=\pi(x). This is simply because every point x\in E lying in the projection plane is mapped to itself.

But now for the shadows. If B\subseteq\mathbb R^3 is a body in space (e.g., a sphere or a cube), the shadow cast on the screen E by the light source located at the point p is exactly given as the image \pi[B]={\pi(x)\,|\,x\in B} of the set B under the mapping \pi.

In the following we want to study the images which can appear as shadows for interesting bodies B:

The sphere

Let B be a sphere of radius r centered at the point x_0. What shadow can this cast on the screen? Well, the rays emanating from point p and passing through a point x\in B of the sphere obviously form a cone K with apex at point p and axis of rotation \overline{px_0}. If we now choose a ray s starting from p and only tangent to the surface of the sphere B — let’s say it touches it in point y –, then x_0yp forms a right triangle (with right angle in y), so that the angle \alpha=\angle ypx_0 is half the opening angle of the cone. So if we set d\coloneqq|\overline{px_0}|, then according to the definition of the sine we get that \alpha=\arcsin(d/r). But now what shadow does the sphere B cast on the canvas E. Well, the boundary of this shadow is obviously the intersection curve K of the lateral surface of the cone K with the plane E, i.e. an ellipse (see also the exhibits “Circle and Ellipse”, “Cone Sections”, “Ellipse Mountains”). We can even calculate the two semi-axes of this ellipse K.

For this purpose y_0 is the intersection of the rotation axis \overline{px_0} with the canvas E.We set D\coloneqq|\overline{py_0}|. The minor semi-axis b now encloses a right angle with the line \overline{py_0}. In the associated right triangle, the interior angle at the point p is equal to half the opening angle \alpha. So b=D\tan(\alpha) results. To determine the major semi-axis a, we need to know the angle \beta where the axis of rotation \overline{py_0} intersects the plane E. If this angle \beta=90^\circ, then K is a circle and thus a=b. So let us assume that \beta\lt 90^\circ. Then there is a unique plane F that is perpendicular to the canvas E and contains the axis of rotation \overlein{py_0}. The major semi-axis a and the point p now form a triangle whose interior angle at p is equal to \alpha, and at y_0 is equal to \beta. Thus we can use the law of sines to determine a:


So we get


Thus the ellipse K is fully determined. That p is an infinitely distant point would be expressed in the equation by \alpha=0^\circ. Then for b=D\tan(\alpha) we get the expression 0\cdot\infty, since the distance D is then equal to infinity. But it is easy to see that then b=r must be valid. For a we get: s=r/\sin(\beta).

The cube

Which shadow a cube can cast is a much more interesting question than for a sphere. For this we assume that p is infinitely far away, so we are dealing with a parallel projection. We want to make use of the vector calculus. For this we further assume that the screen E is exactly the xy-plane and the light is incident vertically from above, i.e. in the direction of the negative z-axis. The projection image \pi from above, is then simply given by setting the z coordinate to zero:

    \[\begin{pmatrix} x\ y\ z\end{pmatrix}=\begin{pmatrix} x\ y\ 0\end{pmatrix}.\]

I’m sure it’s fine if we just forget the last coordinate, so \pi(x,y,z)=(x,y). We now want to find out what shadow a cube can produce under this mapping. What we observe is that the mapping \pi is linear, so the vector addition and scaling of vectors gets:



    \[\pi(\lambda x,\lambda y,\lambda z)=(\lambda x,\lambda y)=\lambda(x,y)=\lambda\pi(x,y,z).\]

A cube W is now twisted in space and projected vertically from above onto our canvas E, the xy-plane. Let us say for simplicity that the cube W has edge length one. We now fix a vertex p of W. From this vertex three perpendicular edges start, which form a coordinate system twisted in space, a so-called tripod. Let us call the corresponding three unit vectors attached in p v_1,v_2,v_3. Then the (filled) cube W is exactly the set W={(av_1+bv_2+cv_3)+p\,|\,a,b,c\in[0,1]}. So the cube W is fully described by the knowledge of the point p and the three unit vectors v_1,v_2,v_3. To better understand the shadow of this given cube, we can now apply to the just mentioned representation the projection \pi and exploit its linearity:


So, to study the shadow of W, it is enough to know the projected vectors \pi(v_1),\pi(v_2),\pi(v_3) and the projected footpoint \pi(p). If we shift p so that it lies on the z axis, then \pi(p)=(0,0). Surely this is not a disadvantage for our understanding of the shadow \pi[W]. This is now exactly the Minkowski sum of the distances corresponding to the vectors \pi(v_1), \pi(v_2) and \pi(v_3) (which are attached at the origin. It is thus easy to consider that the shadow \pi[W] is thus either a rectangle (if two of these vectors \pi(v_1),\pi(v_2),\pi(v_3) are parallel, i.e. one side face of the cube is perpendicular to the canvas E), or a point-symmetric hexagon. Exactly which rectangles occur is relatively easy to clarify: One edge length a is exactly 1, and the other edge length b satisfies the condition 1\leq b\leq\sqrt{2}. Exactly which point-symmetric hexagons occur is much more complicated, and we will not go into it here.

Instead, we want to point out an interesting but little known theorem which can be called the shadow theorem. For this, denote \pi'\colon\mathbb R^3\to\mathbb R the orthogonal projection onto the z-axis. The shadow theorem now states that the shadow \pi[W] of the cube under the orthogonal projection \pi from the top, and the shadow of W under the orthogonal projection \pi' onto the z-axis from the side are equal. Here it is important that we work with a unit cube! The area of a square of dimension 1\times 1 is set here equal to 1, as is the length of the interval [0,1]. We will even give a short proof of this theorem here. However, if you want to try your own hand at it first, stop reading here now.

The proof goes as follows: Let’s assume again the tripod v_1,v_2,v_3 pinned at the vertex p of the cube W. Let us now glue a square side face F between v_1 and v_2. We now claim that the area of the projected square \pi[F]\subseteq E is exactly as large as the length of the projected segment s={av_3\,|\,a\n[0,1]} belonging to v_3, \pi'[s]. What is the reason for this?

To do this, we must first consider what the area of \pi[F] is. But this is not difficult, because if \beta is the angle of intersection between the plane E (i.e. the xy-plane) and the plane containing the square side surface F, it simply follows that the area of \pi[F] is exactly |\cos(\beta)|. Similarly, consider that the length of the projected line \pi'[s] is also equal to |\cos(\beta)|, because \beta is also the angle where the z-axis and the line s intersect.

But now the proof is almost finished: Indeed, the area shadow of the cube in the xy-plane is (as a geometrical consideration shows) exactly the sum of the areas of the projections of the three squares each spanning two of the vectors v_1,v_2,v_3, and the length of its projection onto the z-axis is exactly equal to the sum of the projection lengths of the three unit vectors v_1,v_2,v_3 onto the z-axis. So, according to the above consideration, both are equal.

The triangle

Finally, we deal with the shadow that a triangle can cast. For this we assume again as before an orthogonal projection on the xy-plane. Let’s say our triangle \Delta=abc to be projected is in the F plane. We want to determine the possible shadows of \Delta down to similarity. To do this, we first need to better understand the projection mapping \pi. Let s be the intersection line of the planes E and F. It is certainly possible to move the plane F in such a way that the vertex a of \Delta lies at the origin and thus s also passes through it. You again \beta the intersection angle between E and F. If we now rotate the plane F by \beta it will be transformed into the plane E. If we identify F with E in this way, we can describe the mapping \pi as follows: Along the straight line s \pi fixes every point. Along the perpendicular to s in the plane E (which has now been identified with F) \pi compresses every vector by the factor \cos(\beta). So if we shift our coordinate system so that a is at the origin and s becomes the x axis, then \pi (taking into account the identification of E and F) can now be written as



So, to find out what shadow a given triangle \Delta produces, we simply need to apply \pi (in the form just executed) to it. Here \Delta is now itself to be understood as a triangle in the xy-plane, which has a vertex a at the origin. But the shadow \pi[\Delta] does not change if we rotate it around the origin or stretch it centrically (i.e. the result is again similar to the original shadow). Similarly, we can also rotate and centrically stretch the triangle \Delta itself. We can thus — according to the reasoning just given — go from \pi to \lambda Q\pi R, where R,Q\in\mathrm{SO}2(\mathbb R) are orientation-preserving rotation matrices and \lambda\in\mathbb+ is a positive parameter. We now assert:

Assertion: any 2\times 2 matrix M over the real numbers \mathbb R other than the zero matrix can be written in the form \lambda Q\pi R, for suitable \lambda\in\mathbb R_+, Q,R\in\mathrm{SO}_2(\mathbb R) and \beta fitting.

Proof of the assertion: for this we need a little linear algebra: according to the existence of the polar decomposition, there is a positive semidefinite symmetric matrix S and an orthogonal matrix O with M=OS. Since every real symmetric matrix is orthogonally diagonalizable, there is now a rotation matrix T\in\mathrm{SO}_2(\mathbb R) and a diagonal matrix D such that S=T^{-1}DT=T^\top DT. Since S was positive semidefinite, consequently \lambda_1,\lambda_2\geq 0 holds, where \lambda_1,\lambda_2\in\mathbb R are the eigenvalues of D (i.e., the diagonal entries). Since M was not the zero matrix, the larger of the eigenvalues \lambda_1,\lambda_2 must be greater than zero; without qualification, let this be \lambda\coloneqq\lambda_1. Thus D'\coloneqq\frac{1}{\lambda}D has eigenvalues (diagonal entries) 1 and \lambda'\coloneqq\lambda_2/\lambda_1\leq 1. Thus there is exactly one angle \beta\in[0^\circ,90^\circ] with \cos(\beta)=\lambda'. If we now retrace all steps, we get

    \[M=\lambda OT^\top D' T\]


Here R\coloneqq T is orientation-preserving. If OT^\top also has this property, we are done (with \pi=D' and Q=OT^\top). If this is not the case, we replace D' by D''=\mathrm{diag}(1,-1)D' and set Q\coloneqq OT^\top\mathrm{diag}(1,-1). Then we must choose \beta\in[90^\circ,180^\circ] such that \cos(\beta)=-\lambda'. This proves our assertion.

Proof that all triangles are “equal”: We wanted, after all, to transform our original triangle \Delta\subseteq E with vertices a,b,c, a=(0,0), into any other triangle \Delta'\subseteq E with vertices a',b',c', a'=(0,0). For this we assume that \Delta has not degenerated to a distance and \Delta' does not fall on a point. Then, according to linear algebra, there is exactly one real 2\times 2 matrix that maps b to b' and c to c' (and fixes a=a'=(0,0)). But this matrix M comes — according to the assertion just shown — from a projection \pi. Thus we can map \Delta to \Delta' (up to similarity) by means of a suitable projection. So indeed — as the exhibit “All triangles are equal” claims — in this sense all triangles are equal!