转:http://blog.csdn.net/nibiewuxuanze/article/details/48165555
针对三阶贝塞尔曲线拟合圆弧,进行一般性的公式求解,可以表达如下图所示:
通过圆心O作出半径为1的圆弧A到D,作AB为和CD为圆弧的切线段,长度均为h。
这样,以A、B、C和D作为三阶贝塞尔曲线的控制点,求得使曲线的中点经过E时,对应的h。
根据贝塞尔曲线的知识,我们知道三阶贝塞尔曲线的参数方程如下,其中A、B、C、D为四个控制点坐标,P(t)表示曲线上的每一点。
根据贝塞尔曲线的对称性,不难想出E点在P(0.5)处,代入公式即可求得:
代入四个控制点坐标A,B,C和D,可以求解P(0.5)点坐标,并列出方程如下:
由正弦和余弦的倍角公式,可以进一步分解方程:
所以:
代入方程,可以得到:
结合平方和公式
化简方程,可以得到:
方程分别除以cos(θ/2)和sin(θ/2),进一步化简可得:
可以发现针对x,y的两个方程,最后化简结果相同,也即两个方程可以使用相同的h值为:
这样,我们即求得针对三阶贝塞尔曲线拟合圆弧的一般性的公式。
例如,当θ取90度时,得到三阶贝塞尔曲线拟合1/4圆弧的系数h的值为:
又如,当θ取60度时,得到三阶贝塞尔曲线拟合1/6圆弧的系数h的值为:
下面针对θ取值30到270度时,构建的一个动画演示,可以看到贝塞尔曲线与园的重合度在角度比较小时比较高。
备注:h体现为AB和CD的长度。
感谢Grapher和GeoGebra软件,使得方便排版文章中使用的公式和曲线。