将多项式曲线转换为贝塞尔曲线控制点
Convert polynomial curve to Bezier Curve control points
给定幂形式的曲线,如何计算控制点?假设我有 p(t)=(x(t),y(t)) 和 4 个控制点。
x(t) = 2t
y(t) = (t^3)+3(t^2)
这是纯数学题(除非你选择 #3)...我推断你需要 4 个控制点来绘制二维的单个三次贝塞尔曲线。
代数方法
尝试将您的 x(t),y(t)
多项式与贝塞尔多项式形式匹配并提取 coefficients/control 点。这并不总是可行,但最精确...请参阅最后 #2 中的 link 我这样做是为了让我的插值多项式与贝塞尔曲线匹配,所以我得到了转换控制点之间的公式。
插值
如果 none 或没有找到足够的极值,请在曲线上找到极值点(以尽可能保持精度),其余部分使用沿曲线均匀分散的点。曲线上需要 4 个控制点。现在只需将这 4 个点转换为曲线,例如:how to convert interpolation cubic polynmial to cubic Bezier
可以用曲线拟合
使用approximation search或任何其他曲线距离的最小化...通过拟合贝塞尔曲线控制点,但这是8
参数来搜索哪个是缓慢且不精确的,没有额外的约束..
我相信有很多(可能是混合的)方法可以解决这个问题。
您始终可以从幂基转换为伯恩斯坦基。这总是可行的,并且会给你精确的结果。有关详细信息,请参阅此 link (http://cagd.cs.byu.edu/~557/text/ch3.pdf) 的第 3.3 节。
编辑:
由于上面的link不再可用,我列出下面的公式:
其中 M 是 Berstein 基的阶数,0 <= k <= M 并且 b_i,k=0 如果 i < k。
以常见的三次 Berstein 基(其中 M=3)为例,我们将有
给定幂形式的曲线,如何计算控制点?假设我有 p(t)=(x(t),y(t)) 和 4 个控制点。
x(t) = 2t
y(t) = (t^3)+3(t^2)
这是纯数学题(除非你选择 #3)...我推断你需要 4 个控制点来绘制二维的单个三次贝塞尔曲线。
代数方法
尝试将您的
x(t),y(t)
多项式与贝塞尔多项式形式匹配并提取 coefficients/control 点。这并不总是可行,但最精确...请参阅最后 #2 中的 link 我这样做是为了让我的插值多项式与贝塞尔曲线匹配,所以我得到了转换控制点之间的公式。插值
如果 none 或没有找到足够的极值,请在曲线上找到极值点(以尽可能保持精度),其余部分使用沿曲线均匀分散的点。曲线上需要 4 个控制点。现在只需将这 4 个点转换为曲线,例如:how to convert interpolation cubic polynmial to cubic Bezier
可以用曲线拟合
使用approximation search或任何其他曲线距离的最小化...通过拟合贝塞尔曲线控制点,但这是
8
参数来搜索哪个是缓慢且不精确的,没有额外的约束..
我相信有很多(可能是混合的)方法可以解决这个问题。
您始终可以从幂基转换为伯恩斯坦基。这总是可行的,并且会给你精确的结果。有关详细信息,请参阅此 link (http://cagd.cs.byu.edu/~557/text/ch3.pdf) 的第 3.3 节。
编辑: 由于上面的link不再可用,我列出下面的公式:
其中 M 是 Berstein 基的阶数,0 <= k <= M 并且 b_i,k=0 如果 i < k。
以常见的三次 Berstein 基(其中 M=3)为例,我们将有