A tale of ellipses and circles


Back in 1998, I stumbled upon a nice CGM viewer for X11. It came with GLI, could read the clear-text encoding, and built under Linux. Life seemed good. Then I discovered that it didn't support the ellipse primitive. It did, however, render circular arcs. So I thought about a way to approximate the first with the latter. Here is what I came up with:

A few alternative approaches crossed my mind, of which the one to the right struck me as particularly appealing, aesthetically as well as mathematically. For like the structures above, it is fully scalable, yet unlike them, it is no approximation, but a true ellipse, in the sense of

(xa)2 + (yb)2 = 1

I used this variant in fig. 3.6 on p. 107 of my doctoral dissertation, and the above approach (four circular arcs) in fig. 3.2–6 on pp. 70, 71, 72, 97, and 107.


This time, no compiler was needed, only an editor in which to type a clear-text Computer Graphics Metafile (CGM), and an interpreter like RAL-CGM to turn that into PostScript. Out of this, Ghostscript made PDF, out of which pdf2svg made SVG. See here for alternative CGM interpreters.