# Approximating arc with non-rational, cubic Bezier

I couldn’t find the solution for this online, so I solved this myself and wanted to share.

Given a (circular) arc between 0° and 180°, what non-rational, cubic Bezier curve can approximate this arc while maintaining G2 continuity at both ends?

The following image shows the start of the work to obtain it. The first equation is a simplified form of eq. 2.13 in https://scholarsarchive.byu.edu/cgi/viewcontent.cgi?article=1000&context=facpub
The remaining work is constructing a quadratic equation for t and solving. The curve can then be constructed by using t as the distance from the end points of the curve to the two interior control points.

Python:

``````cos_ = math.cos((math.pi/2.0)-arc_angle)
tan_ = math.tan(arc_angle/2.0)
sqrt_ = (1.0 + 6.0*tan_/cos_)**0.5
t = radius * cos_ * (sqrt_ - 1.0) / 3.0
``````

The following table includes alternative ways to construct the non-rational, cubic Bezier. The Stack Overflow solution is found at
geometry - How to create circle with Bézier curves? - Stack Overflow

``````Arc:				 CentralAngle: 90.00			           Radius: 1.000000