最详细的Catmull-Rom Spline 推导与应用

最详细的Catmull-Rom Spline 推导与应用

附赠最强自动驾驶学习资料:直达链接

前言

我们往Spline 的方向深入,探究 Catmull-Rom 的曲线,想必研究的越深入,来到这里的人也越少。实际上,作为一个使用引擎的编程者,并不需要推导的那么深入,引擎自然有现成的实现。不过,既然已经钻研到了这里,“予之力尚足以入,火尚足以明也”如果不在此研究明白,恐怕以后也很难有机会再回到这里来研究更多吧。

当然,我们到了这里,会发现,这部分的中文的教材充斥着抽象的概念,晦涩难懂;这部分的博客往往伴有“无脑转译”和“不求甚解” 的存在。甚至能在一些他人的博文中发现隐蔽的错误,会困扰你对这部分知识的理解,这也是我本人亲自踩过的坑。所以,如果有能力,应阅读更多第一手的英文资料。

在参照各个讲义和教程(见最后的附录)后,我小心翼翼的推导每一个公式的每一个的步骤,只望能给每个认真想要知道原理与过程的人一个更能接近全面的答复。

加V好友:AutoDriverZone,获取史上最强的自动驾驶学习资料

1、Catmull-Rom Spline 简介

image

2、公式推导

image

image

image

这是个一般公式,我们是从二维中推导出来的,我们也可以运用在三维或者更高维度中,只要带入高维的坐标点即可。

3、理解 Spline

感性上,如何去理解它呢?我们一路是从最简单的贝塞尔曲线开始的,从最简单的插值开始,找到两个点的线上的任意一点,是这两个点进行线性插值来得到的,找到一个二阶贝塞尔曲线,曲线是这三个点的两条线的插值点连线线性插值出来…直到现在在叙述的 Catmull-Rom Spline,其实我们也可以将其理解为某种非线性的插值。

如图所示,这四个函数就代表了四个点在 0-1之间的插值比例,或者我们可以理解为,这是一个三次式插值, 我们通过在 0⩽t⩽1 之前带入各个点的 x值,然后通过这四个三次项的式子来整理成一个关于 t 的三次多项式,这就是我们要求的Spline了。

image

image

它和Bézie曲线的关系呢?Catmull-Rom曲线和Bézier曲线之间的主要区别在于“点的含义”: 三次Bézier曲线由一个起点、

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值