[comp.graphics] Forward Differencing of RATIONALs ??

stuart@rennet.cs.wisc.edu (Stuart Friedberg) (10/19/89)

In article <5021@orca.WV.TEK.COM> steveb@eve.WV.TEK.COM () writes:
>As it happens, we can render a curve in many different ways.  One of
>them is to take a polynomial and evaluate it (which in a non-trivial
>case requires a hell of alot of multipli- cation).  Another is to use
>forward differencing (See the Shantz and Chang papers from the last 3
>siggraphs).

I would like very much to know if there is a way to do forward
differencing of rational functions, without stepping the numerator and
denominator separately followed by division on each step.  I have a
B-spline package that displays polynomial curves quite quickly
(everything is integer shift and add), but crawls when displaying
rational curves and surfaces (twice the cost of the polynomial case
*plus* two scaled integer to floating conversions, a floating divide,
and a conversion back to integer on every point).

Is there any result from algebra that suggests how this might be done,
or that it isn't possible?  If not possible, can anyone suggest a
method of *cheaply* splitting a rational function over a definite range
into pieces that can be approximated by polynomial curves, preferably
with a specified error bound.  I can't afford a recursive subdivision,
as that's slower than what I am currently using.

Stu Friedberg  (stuart@cs.wisc.edu)