Skip to content
Advertisement

Circle approximations using Bezier curves

I have 2 questions about bezier curves, and using them to approximate portions of circles.

  1. Given the unit circle arc (1,0)->(cos(a),sin(a)) where 0 < a < pi/2, will it result in a good approximation of this arc to find the bezier curve’s control points p1, p2 by solving the equations imposed by the requirements B(1/3) = (cos(a/3), sin(a/3)) and B(2/3) = (cos(2a/3), sin(2a/3)). (In other words, requiring that the bezier curve go through two evenly spaced points in the arc).

  2. If we have an affine transformation A which turns the circle arc in an ellipse arc will the transformed control points Ap0, Ap1, Ap2, Ap3 define a good bezier approximation to the ellipse arc?

p0 and p3, of course, are the start and end points of the curve: (1,0) and (cos(a), sin(a)).

Thank you

Advertisement

Answer

Here’s a general solution for any elliptical arc as a cubic Bezier curve.

The error is most dependent on the difference of the start and end angles. I’ve had good success by limiting the angle difference to 60°. That is, I make a separate cubic segment for every 60° (or fraction thereof) and chain them together.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement