要做到这一点,你必须用 n 个代数来划分你的圆(例如象限,八角形)。对于每个 n 元素,使用第一个和最后一个点作为 Bezier 曲线的第一个和最后一个点。贝塞尔多边形需要两个额外的点。为了快速起见,我把 n 次方的每个极值点的切线取到圆上,然后选择这两个点作为两个切线的交点(这样基本上你的 Bezier 多边形就是一个三角形)。增加 n 元素的数量以适应你的精度。
对于二次曲线,可以简化为 l ≈ r + r * PI*0.1 * pow(α/90, 2)PI*0.1是一个相当大的猜测-我没有计算完美的价值,但它相当接近。
对于1-2个控制点,三次曲线半径误差在0.2% 左右的曲线,该方法效果较好。对于高度曲线,精度的损失是显而易见的。3个控制点曲线看起来类似于二次曲线,所以很明显我遗漏了一些东西,但我不能弄清楚,这种方法通常适合我的需要现在。
这里是 小样。