[net.graphics] Wanted - Conic Sections Raster Algorithms

stuart@rochester.UUCP (Stuart Friedberg) (05/14/84)

From: Stuart Friedberg  <stuart>
I have been putting together some primitives to run in an Adage
(Ikonas) RDS-3001 framebuffer.  I wanted to throw together a routine to
draw conic sections (lines, ellipses, hyperbolae, parabolae).  The
Adage has a fast bit-slice processor with 32 bit addition and
subtraction and 16x16 bit multiplication.  No floating point.  No
integer divide or square root.  Naturally, you want integer algorithms
for this machine.

There are two worthwhile algorithms that I know of.  One is due to
Pitteway, the other is due to Jordan, Lennon and Holm.  I put up the
JL&H algorithm and fixed a couple of defects which had been mentioned
in the literature.  While testing I found that it doesn't always behave
nicely on curves with very high curvature.  Last night (or very early
this morning) I found out that Pitteway had found the same problem with
his algorithm and was not able to fix it (circa '76).

THE QUESTION:
Who has a fix to either Pitteway's or JL&H's algorithm for plotting
conic sections that corrects the behavior for high curvature?

Failing that, who has an algorithm to plot arbitrary conic sections that:
  1) uses integer arithmetic only,
  2) handles arbitrarily small, large, flat and sharp curves,
  3) uses or can be adapted to use all 8 moves (hori, vert and diag)
  4) plots all the points on or near the curve (no polygonal approx.) and
  5) is willing to let me use it in noncommercial graphics?

Failing that, who has an algorithm to plot arbitrary ellipses (including
rotation) that meets the 5 criteria just above? No circle-only algorithms,
please.

Arbitrary conic sections:  A x**2 + B y**2 + C x y + D x + E y + F = 0
Arbitrary ellipses:        A x**2 + B y**2 + C x y + F = 0
 (and hyperbolae)

I can provide the appropriate literature citations to those interested in
what I've mentioned here.  I can also provide a detailed description
of the problem for those who are interested.  Any assistance or suggestions
will be appreciated and duly credited.

				Stu Friedberg
			{seismo, allegra}!rochester!stuart	UUCP
				stuart@rochester		ARPA
				Dept. of Computer Science	Post
				University of Rochester
				Rochester, NY  14620 USA
				(716) 275-2527			AT&T