A Fast Parametric Ellipse Algorithm

This paper describes a 2-D graphics algorithm that uses shifts and adds to precisely plot a series of points on an ellipse of any shape and orientation. The algorithm can also plot an elliptic arc that starts and ends at arbitrary angles. The ellipse algorithm described here is largely based on earlier papers by Van Aken and Simar [1,2], which extend Marvin Minsky's well-known circle algorithm [3,4,5] to ellipses, and show how to cancel out the sources of error in Minsky's original algorithm. A new flatness test is presented for automatically controlling the spacing between points plotted on an ellipse or elliptic arc. Most of the calculations performed by the ellipse algorithm and flatness test use fixed-point addition and shift operations, and thus are well-suited to run on less-powerful processors. C++ source code listings are included. Keywords: parametric ellipse algorithm, rotated ellipse, Minsky circle algorithm, flatness, elliptic arc, conjugate diameters, affine invariance