贝塞尔曲线均匀插值算法

贝塞尔曲线均匀插值算法
二次贝塞尔曲线公式为:
在这里插入图片描述

其中,P0、P1、P2分别为起始点、控制点、终点。
其对应的坐标公式为:
在这里插入图片描述

整理有:
在这里插入图片描述

由公式很容易可以得出这样一个结论:随着变量t线性变化,坐标x、y是非线性变化的。这将导致一个问题,我们在贝塞尔曲线上取点时,若想取得的点是“均匀”的,即点与点之间的距离要相等(点足够密时,可以近似为点与点之间的路径相等),即需要求出贝塞尔曲线段长度L关于t的关系函数,然后根据L来反求t,这样才能采样得到均匀的贝塞尔采样点。

下面开始求贝塞尔曲线长L关于t的关系函数。

在这里插入图片描述


在这里插入图片描述

同理,
在这里插入图片描述

对(6)(7)求导,有:
在这里插入图片描述

根据平面距离公式,此时速度大小:
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

对速度函数求积分,即得到贝塞尔曲线积分:
在这里插入图片描述

公式(12)即是二次贝塞尔曲线的长度函数。
再回到上述问题,若想要在贝塞尔曲线上均匀取点,即保持L(t)为一个固定值D,令L(t)-D=0,求出t,再将t代入B(t)中(即公式(1)),即可求得间距D时的坐标(x,y)。

根据L(t)-D=0求t的方法----牛顿迭代法:
设r是f(x)的根,选取x0作为r的初始近似值,则有:
在这里插入图片描述

只要选取的x0在r的邻近区域内,那么牛顿法必定收敛。 并且,如果不为0, 那么牛顿法将具有平方收敛的性能。因此,只要经过一定的迭代次数,所求xn在一定精度内满足我们需求。
回到原问题,我们已知了L(t)、L(注意这里=),则可以求得对应的t。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值