进阶图形学(二十六)catmull-rom 样条(spline)公式推导

【别的文章都说网上关于这个资料很多?为什么我在中文互联网上愣是没找到呢?不管了,以下是对http://algorithmist.net/docs/catmullrom.pdf的翻译】

有时候我们想要物体从一个点移动到另一个点,但并不希望它沿着直线移动过去,而是稍微弯曲一点,这时候catmull-rom样条就派上用场了。推导其实很简单。

比如,我们想要构造P0到P1之间的曲线P(t),P(t)是如下待求解的三次曲线

p-1和p2是控制点,满足如下方程, \alpha是0到1之间的参数,用来控制曲线的尾部与控制点之间的平行程度。

由于

于是

由等式[2]可得到:

由等式[3]可得到:

[4a]和[4b]联合可得:

继续化简:

参数  \alpha也可以理解为曲线的“紧张程度”。通常取0.5。

最终解出方程

效果如下:

对于多条线段,那么对于第i控制点,方程在x坐标轴上如下:

效果如下:

欢迎在知乎关注我!​​​​​​​