Xref: utzoo sci.math:6943 comp.graphics:6046 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!voder!berlioz!nelson From: nelson@berlioz (Ted Nelson) Newsgroups: sci.math,comp.graphics Subject: Re: Computing Bezier Control Points for an Arc of a Circle Keywords: bezier, arc, graphics Message-ID: <317@berlioz.nsc.com> Date: 7 Jun 89 01:57:34 GMT References: <108121@sun.Eng.Sun.COM> <10150@watcgl.waterloo.edu> Reply-To: nelson@berlioz.UUCP (Ted Nelson) Organization: National Semiconductor, Santa Clara Lines: 23 In article <10150@watcgl.waterloo.edu> rhbartels@watcgl.waterloo.edu (Richard Bartels) writes: >This is one of the Golden Oldies. You can't do a circle exactly >as a Bezier curve (at least as an integral Bezier curve, you can do >conic sections as rational Bezier curves). Yes, but there is nothing to stop you from using 8-way symmetry. Worst case is 2-way symmetry for a rotated ellipse. We did a simple solution to this problem. The user would input 3 points on the circle and it would draw the circular arc which they define. All we did was to compute the radius of the circle, have a look-up table to grab pre-computed Bezier increments which were then stepped up by the radius (thus, it would work for ellipses too). From this it would construct a point list in memory of only the octants (use 8-way symmetry) that it go through. It took out the display list before the first point and after the third point, and proceeded to draw a line from the first point, the complete remaining point list, and then to the third point. In fact, we did it in assembly language on a NSC Raster Graphics Processor. It was only about 12 pages ==> a page or two of C code... -- Ted.