Length of a shadow cast by an object on a sphere

800 Views Asked by At

Say there is an object with height y standing on a spherical globe with radius r. A light ray casts a shadow from the object to the ground at angle θs. How can I find the length of the shadow d that forms on the ground?

Diagram of this problem

1

There are 1 best solutions below

0
On BEST ANSWER

Normally problems like these are fairly straightforward to solve, since they involve triangles to which Pythagoras' theorem can be applied repeatedly. However, this does not work in the present case due to the curvature of the sphere. So I came up with a different strategy.

First of all I rotated your picuture over 90 degrees. The point which is $y$ above the surface of the sphere I call $P$. It has coordinates $(r + y, 0)$. The point where the light ray touches the sphere I call $Q$. It is convenient to write its coordinates as $(rcos(\phi), rsin(\phi)$. There is a linear equation $L$ for all the points on the light ray:

$$L : (x,y) = (r+y,0) + \lambda(-cos(\theta), sin(\theta))$$

As stated, point $Q$ is also on the light ray. So we can equate the $x$ and $y$ values of $L$ and $Q$. In order to eliminate the angle $\phi$, square both equations and take the sum. The result is a quadratic equation in $\lambda$:

$$\lambda^2 - 2\lambda(r+y)cos(\theta) + 2ry + y^2 = 0$$

Now all one has to do is solve the quadratic equation in the usual way. Substitute the value for $\lambda$ into the equation for $L$. This gives you the coordinates of the point $Q$. With the help of the arctan-function find the angle $\phi$. Finally the arc-length $d$ is found by taking the product $d = r\phi$.