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