home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / graphics / 8921 < prev    next >
Encoding:
Internet Message Format  |  1992-08-17  |  2.6 KB

  1. Path: sparky!uunet!olivea!decwrl!sdd.hp.com!hplabs!ucbvax!VNET.IBM.COM!capelli
  2. From: capelli@VNET.IBM.COM ("Ron Capelli")
  3. Newsgroups: comp.graphics
  4. Subject: Re: Representing conics as Bezier's
  5. Message-ID: <9208172201.AA19442@ucbvax.Berkeley.EDU>
  6. Date: 17 Aug 92 22:07:08 GMT
  7. References: <1992Aug14.160501.15095@smsc.sony.com>
  8. Sender: daemon@ucbvax.BERKELEY.EDU
  9. Lines: 55
  10.  
  11. In <1992Aug14.160501.15095@smsc.sony.com> Mark L. Wood-Patrick writes:
  12. >I would like to get some pointers/references on representing conics
  13. >(In particular circular and elliptical arc's) as Bezier's.  Does
  14. >anyone have any suggestions.
  15.  
  16. This topic is discussed in the FAQ postings.  A non-rational
  17. Bezier curve cannot generate an exact circular or elliptical arc.
  18. A non-rational quadratic Bezier curve is a parabola.
  19.  
  20. To use rational parametric polynomial curves to generate exact circular
  21. and elliptical arcs, the FAQ lists the paper by L.Piegl and W.Tiller,
  22. "A Menagerie of Rational B-Spline Circles" in IEEE CG&A, v9n9, Sept 89.
  23. See also the text by G.Farin, "Curves and Surfaces for Computer Aided
  24. Geometric Design", Academic Press (1988 or subsequent edition).
  25.  
  26. For an approximation to an ellipse using a non-rational cubic Bezier,
  27. consider this one...
  28.  
  29. For an ellipse x**2/a**2 + y**2/b**2 = 1, the following points on the
  30. curve have the given tangent slopes:
  31.  
  32.   [+a/sqrt(2), +b/sqrt(2)] has slope -b/a
  33.   [+a/sqrt(2), -b/sqrt(2)] has slope +b/a
  34.   [-a/sqrt(2), -b/sqrt(2)] has slope -b/a
  35.   [-a/sqrt(2), +b/sqrt(2)] has slope +b/a
  36.  
  37. These four points subdivide the ellipse into four arc segments.
  38. Consider the rightmost segment, which should cross the x-axis at
  39. [+a, 0].  Working backwards through one De'Casteljau subdivision
  40. step for a cubic Bezier curve, Bezier control points to approximate
  41. the elliptical arc segment can be determined to be:
  42.  
  43.   [+a/sqrt(2), +b/sqrt(2)]
  44.   [+a*(8-sqrt(2)/6, +b*(7*sqrt(2)-8)/6]
  45.   [+a*(8-sqrt(2)/6, -b*(7*sqrt(2)-8)/6]
  46.   [+a/sqrt(2), -b/sqrt(2)]
  47.  
  48. The other three segment control points can be determined in a
  49. similar manner, or by symmetry.  For a circle, let radius = a = b.
  50.  
  51. The FAQ lists a couple of references for non-rational approximations.
  52. I haven't been able to get a copy of the Faux and Pratt book.  Does
  53. it have this approximation?
  54. ______________________________________________________________________
  55.  
  56. "It is impossible to make anything foolproof,
  57. because fools are so ingenious."
  58.  
  59. "If you do something which you are sure will meet with
  60. everyone's approval, someone won't like it."
  61. ______________________________________________________________________
  62.  
  63. ...Ron Capelli      capelli@vnet.ibm.com        (914) 435-1673
  64.  
  65.    IBM Corp.,   PO Box 950,   Poughkeepsie, NY  12602
  66.