使用贝塞尔曲线的圆近似

Cro*_*yer 5 math graphics openjdk bezier renderer

我有 2 个关于贝塞尔曲线的问题,并使用它们来近似圆的部分。

  1. 给定单位圆弧 (1,0)->(cos(a),sin(a)) 其中 0 < a < pi/2,是否会很好地逼近该弧以找到贝塞尔曲线的控制点 p1 , p2 通过求解由要求 B(1/3) = (cos(a/3), sin(a/3)) 和 B(2/3) = (cos(2a/3), sin( 2a/3))。(换句话说,要求贝塞尔曲线通过弧中的两个均匀间隔的点)。

  2. 如果我们有一个仿射变换 A 将圆弧转为椭圆弧,变换后的控制点 Ap0、Ap1、Ap2、Ap3 是否会定义椭圆弧的良好贝塞尔近似?

p0 和 p3 当然是曲线的起点和终点:(1,0) 和 (cos(a), sin(a))。

谢谢

xan*_*xan 4

这是任何椭圆弧作为三次贝塞尔曲线的通用解决方案。

\n

该误差主要取决于起始角度和终止角度的差异。我通过将角度差限制为 60\xc2\xb0 取得了很好的成功。也就是说,我为每个 60\xc2\xb0 (或其分数)创建一个单独的立方段并将它们链接在一起。

\n