approximating arcs using bezier curves -- how?

approximating arcs using bezier curves -- how?

Post by Peta » Fri, 06 Dec 1996 04:00:00



Some 2D graphics systems do not allow you to draw arcs. Instead they
want you to approximate the arcs using Bezier curves. An example is
Adobe's Portable Document Format (PDF).

Does anyone know the formula for doing this? I need to draw arbitrary
arcs (not just full circles).


 
 
 

approximating arcs using bezier curves -- how?

Post by George Politi » Wed, 11 Dec 1996 04:00:00



> Some 2D graphics systems do not allow you to draw arcs. Instead they
> want you to approximate the arcs using Bezier curves. An example is
> Adobe's Portable Document Format (PDF).

> Does anyone know the formula for doing this? I need to draw arbitrary
> arcs (not just full circles).
> For arcs up to 90 degrees, from memory, I think you pick cubic

bezier endpoints p0, p3 to be the arc endpoints, and internal
points p1, p2 to satisfy:

* vectors p1-p0 and p2-p3 tangential at the arc endpoints
* |p1-p0| = |p2-p3|
* midpoint of the Bezier equals midpoint of the arc

How about you do the maths and post back a reply?

For arc > 90 degrees, break it up into smaller arcs each no wider
than 90 degrees, and generate a bezier cubic for each one.

Hope this helps.

George Politis.