The ghost of Euclid cries in agony every time someone draws an ellipse like that. This guide will tell you how to do it precisely using the classic tools: a ruler, a compass, and additionally a piece of string and two pins, to render the ellipse itself.

We'll start with a basic setup to project objects in perspective from a top and a side view:

Let's start by projecting a rectangle we've drawn around the circle. This step is a red herring when using our exact method, but it'll work as an introduction to projecting in perspective and also as a reality check when we finish constructing the ellipse.

Let's put the square away and take the first steps of our method.

First we'll find out the leftmost and rightmost points of the ellipse on the canvas by projecting the tangent points T

_{left}and T

_{right}. Draw rays from the top viewpoint on the projection line across the tangent point. (You can find the tangent points by using the fact that the angle C

_{top}- T

_{left}- VP

_{top}is a straight angle. You know C

_{top}- T

_{left}and C

_{top}- VP

_{top}, so you can find out T

_{left}- VP

_{top}using Thales's theorem.)

Measure the lengths of the tangent points from the projection line (T

_{left}- T

_{left}x and T

_{right}- T

_{right}x) and use them to find out the distances of the tangent points (T''

_{right}, T''

_{left}) on the side view. Project, perpendiculars, crossings, ready. We've found the tangent points and one conjugate diameter. We need another of those, so on to the next step.

Here we go about finding T'

_{far}. T'

_{left}and T'

_{right}are the tangent points, so the vertical lines across them are the tangents. The smaller conjugate diameter has to be parallel to these, so it must be somewhere along the line that crosses C

_{paral}. Now we "project backwards": draw that vertical line, and where it crosses the projection line, draw to VP

_{top}. Now we found T

_{far}and T

_{near}. We only need to find one of their distance from the projection plane (T

_{far}- T

_{far}x) to get both points, since they are the same distance from C

_{paral}.

We can do a sanity check by doing the same a bit harder way. You can skip this step. Honestly it's here because I didn't see the easier method before doing the graphics...

As you might have noticed, all points that go through a ray from VP

_{top}, are projected in the same vertical line on the canvas. So, points that lie on some other ray will form a line that is parallel to the first one. Imagine drawing a bunch of rays from a single point and taking a photograph from the exact point where they converge. The rays will seem like a bunch of parallel vertical lines on the photo.

Turns out that any rays projected from some other point (like point K here) that is equally far from the projection line as your viewpoint, any rays drawn from that point will seem parallel on the canvas. We use this fact to find out T'

_{far}.

Draw a ray from T

_{right}through T

_{left}to a line that goes through VP

_{top}and is parallel to the projection line. Where it crosses, is our point K. We want to find tangent line T'

_{far}that is parallel with T'

_{left}- T'

_{right}, so we draw a ray from K to T

_{far}(that we found using the right angle triangle as before).

Now we have the conjugate diameters, and must find the major and minor axes of the ellipse using a procedure described in http://www3.ul.ie/~rynnet/swconics/EP%27s.htm. (Another choice would be Rytz's construction).

The blue segments are the diameters from the previous step.

From one of the ends of the shorter diameter (T'

_{far}) draw a segment (T'

_{far}- A) that is as long as half of the longer diameters, perpendicular to the longer diameter.

Then a segment from A to the center (C

_{paral}). Find the middle of this segment, call it B.

Draw a circle with the center in B, with radius A-B == B-C

_{paral}.

Then T'

_{far}to C on the circle. Mark the point where this line first crosses the circle as D. The illustration is a bit messy, so here's a detail:

Now from C to C

_{paral}. This is the direction of the minor axis.

Get the length of T'

_{far}to D. This is the length of half of the minor axis. T'

_{far}to A is the length of half of the major axis, and they are of course perpendicular to each other. Now we should have both the axes.

Now just take half the length of the major axis (C

_{paral}to Major'

_{right}or Major'

_{left}), and draw a circle from one of the small axis points (Minor

_{far}or Minor

_{near}). Where it crosses the major axis (Focus

_{left}, Focus

_{right}) are the foci. Take your pins, stick them into these points. Measure a loop of string such that it spans Focus

_{left}, Focus

_{right}, and Minor

_{far}. Stick your pen inside and draw an ellipse. Enjoy the feeling of accomplishment, shed the shame of drawing potatoes and calling them circles in perspective. May the ghost of Euclid smiles at you.

When we superimpose the square we projected in the first step, it indeed looks sane:

Now, as simple as this might seem in hindsight, this bugged me for years. There are lots of assumptions you might make that turn out wrong. I learned this the hard way. Here are all the things I tried superimposed before I found the Truth:

Everything on this page was drawn with GeoGebra. You can download the source from Google Drive to play with. Try moving the vanishing point, viewpoints and the circle!

## No comments:

## Post a comment