rec.puzzles Archive

You have a photograph of a person in front of a sunset over the sea.

geometry/photograph.horizon

Problem

You have a photograph of a person in front of a sunset over the sea.
Relative to the person in the picture, how tall is the photographer?

Second puzzle:

Now that you have tried that one, here is a harder question.  You have
a photograph of a person standing on a long perfectly straight road,
which you can see all the way to the horizon.  In the photograph you
can see two mile markers. How do you work out how far the person is
from the first mile marker?

-- Evelyn Sander <sander@geom.umn.edu>, May 1994
Show solution
First puzzle:

Although it looks impossible at first, this problem does indeed have a
solution. The important fact here is that the horizon is always at eye
level. This is because we can assume the earth is flat.  If you look
up, you see the sky. If you look down, you see the ground.  Thus to
see the point transition between earth and sky, the horizon, you must
look exactly horizontally. Assuming that the photographer holds the
camera at eye level to take a picture, the placement of the horizon in
the picture is the height of the photographer's eyes. Thus if the
horizon is above the eyes of the person in the picture, the
photographer is taller, whereas if the horizon is below the eyes of
the person in the picture, the photographer is shorter.

-- Evelyn Sander <sander@geom.umn.edu>

Second puzzle:

Measure, along the image of the road, the distances from the
vanishing point V (where the road meets the horizon) to the nearer
mile marker (d1), to the farther one (d2) and to the person's feet
(dp).  Then the person is

        D = (1/dp - 1/d1) / (1/d2 - 1/d1)
          = d2 (d1 - dp) / (dp (d1 - d2))   miles

beyond the first marker (negative D means on the camera's side of
it).  Example: d1 = 30 mm, d2 = 10 mm, dp = 15 mm gives D = 1/2 mile.

Why: a photograph is a central projection, and it maps the straight
road to a straight line in the picture by a projective map.  Measure
position along the road by x (miles) and in the picture by the
distance t from V.  A projective map of a line has the form t =
(px + q)/(rx + s), and since the point at infinity of the road goes
to V (t = 0), p = 0, so 1/t = (r/q) x + s/q is a linear function of x.
The two markers, 1 mile apart, fix that linear function, and the
person's position follows.  Equivalently, the cross-ratio of V and
the three points is the same in the picture as on the road.

For a level camera the formula is just similar triangles: a point of
the road at horizontal distance Z from the camera appears h f / Z
below the horizon (h the camera height, f the focal length), so the
distance below the horizon is inversely proportional to Z, and Z
grows linearly along the road.  The general argument shows that the
tilt of the camera, its height and its position beside the road do
not matter, and neither do the person's height or the scale of the
print.  What is needed: a straight, flat road, the vanishing point
(the horizon must be visible, as it is here), and consecutive
markers, so that their distance apart (1 mile) is known.

A remark on the first puzzle: the horizon line in the picture is the
image of every point at the height of the camera, however the camera
is tilted, so the answer compares the person with the height of the
camera (the photographer's eyes if it is held there).  On the real,
curved earth the sea horizon lies slightly below eye level (by about
0.05 degrees from a height of 2 m), which does not matter in practice.
-- Claude (rec.puzzles Oracle, 2026-11-02)