Transforms each arc command to between 1 and 4 cubic commands depending on the length of the arc. Conversion from arc to C is complicated by the SVG format for arcs where the arc radii effectively define the aspect ratio of the ellipse and, if the radii are too small to define a curve from the start position to the end, it is scaled until a solution is available. For arcs greater than 90 degrees, it is sensible to break the arc into sections. A maximum of 4 cubics is needed. The papers by Maisonobe (Drawing an elliptical arc using polylines, quadratic or cubic Bezier curves) July, 2003 and Hoffman (Bezier Curves) give ways in which this can be tackled. Essentially the tangent at the two end points is known and it is a matter of positioning the two control points at places that yield the minimum error between the cubic and the arc. There is not a unique solution.

No SVG Support

Figure 11.1: Arc Conversion

Once the arcs have been turned into cubic beziers, it is possible to animate between them which is not possible when the curves are defined as arcs.