将三次贝塞尔曲线转换为基数样条并返回

bri*_*ght 0 geometry bezier 2d spline

我读过许多文章,描述了如何将基数或正则样条曲线转换为三次贝塞尔曲线,例如曲线。

有没有办法做相反的事情,即将一组三次贝塞尔曲线转换为基数样条曲线?例如,我们知道每个曲线的端点都在样条线上。

我正在寻找的是一种在信息最少的情况下往返两种表示形式的方法。同样理想地,解应该是稳定的,以便从三次贝塞尔曲线=>基数样条=>立方贝塞尔曲线=>基数样条应在第二次操作后产生相同(或几乎相同)的曲线。

MBo*_*MBo 5

想象一下B点和E点之间的三次曲线。
如果将其定义为带有张力参数s的基数样条曲线,则这些点的切向量为

T b = s *(E - A
T e = s *(F - B

如果曲线定义为贝塞尔曲线一,则切向量为

T b = 3 *(C - B
T e = 3 *(E - D

如果曲线BE相同,则切线值相等,如果已知A,B,E,F,s,则可以找到Bezier的控制点。反之亦然-如果已知B,C,D,E,则可以找到基数样条的A,F点。例如,贝塞尔曲线的第一个控制点是

C = B + s *(E - A)/ 3

在此处输入图片说明-