This paper gives a fast, linear-time algorithm for generating high-quality pixel representations of curved lines. The results are similar to what is achieved by selecting a circle whose diameter is the desired line width, and turning on all pixels covered by the circle as it moves along the desired curve. However, the circle is replaced by a carefully chosen polygon whose deviations from the circle represent subpixel corrections designed to improve the aesthetic qualities of the rasterized curve. For nonsquare pixels, equally good results are obtained when an ellipse is used in place of the circle. The class of polygons involved is introduced, an algorithm for generating them is given, and how to construct the set of pixels covered when such a polygon moves along a curve is shown. The results are analyzed in terms of a mathematical model for the uniformity and accuracy of line width in the rasterized image.
Read full abstract