進階圖形學(二十六)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座標軸上如下:

效果如下:

歡迎在知乎關注我!​​​​​​​