Forward differencing is widely used to generate rapidly large numbers of points at equally space parameter values along a curve. A failing of forward differencing is the tendency to generate many extraneous points for curves with highly nonuniform parameterizations. A key result is presented and proven, namely, that a few levels of subdivision, prior to initialization for forward differencing, can improve substantially the quality of the step size estimate, resulting in very few extra points. The initial subdivisions can be done without loss of the exact integer precision available in forward differencing. For small numbers of points—a common occurrence in fonts—exact subdivision is even faster than exact forward differencing. When exact subdivision is used in conjunction with a previously presented exact forward-differencing algorithm, arbitrary cubic curves may be rendered with 32-bit arithmetic and guaranteed single-pixel accuracy, in a grid with an address space as large as 0…7281, with no two generated points greater than one pixel apart. This is more steps than previously possible. Previous discussions of rendering using subdivision have concentrated not on distance but on straightness estimates, whereby subdivision can be stopped once a subcurve can be drawn safely using its polygonal approximation. In this article, bounds are also derived on the size of the control polygon after multiple levels of subdivision: these are used to determine bounds on the number of steps required for differencing. It is shown that any curve whose rasterization fits in a space of ω pixels requires no more than 9ω steps.
[1]
D. R. Forsey,et al.
An adaptive subdivision algorithm for crack prevention in the display of parametric surfaces
,
1990
.
[2]
Edwin Earl Catmull,et al.
A subdivision algorithm for computer display of curved surfaces.
,
1974
.
[3]
Ari Rappoport.
Rendering curves and surfaces with hybrid subdivision and forward differencing
,
1991,
TOGS.
[4]
Gerald Farin,et al.
Curves and surfaces for computer aided geometric design
,
1990
.
[5]
Alyn P. Rockwood,et al.
A Generalized Scanning Technique for Display of Parametrically Defined Surfaces
,
1987,
IEEE Computer Graphics and Applications.
[6]
R. Victor Klassen,et al.
Integer forward differencing of cubic polynomials: analysis and algorithms
,
1991,
TOGS.
[7]
R. Victor Klassen,et al.
Drawing antialiased cubic spline curves
,
1991,
TOGS.
[8]
Vaughan R. Pratt,et al.
Adaptive forward differencing for rendering curves and surfaces
,
1987,
SIGGRAPH.
[9]
Robert P. Markot,et al.
Surface algorithms using bounds on derivatives
,
1986,
Comput. Aided Geom. Des..