Exact integer hybrid subdivision and forward differencing of cubics

  • Authors:
  • R. Victor Klassen

  • Affiliations:
  • Xerox Webster Research Center, Webster, NY

  • Venue:
  • ACM Transactions on Graphics (TOG)
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 &ohgr; pixels requires no more than 9&ohgr; steps.