【別的文章都說網上關於這個資料很多?爲什麼我在中文互聯網上愣是沒找到呢?不管了,以下是對http://algorithmist.net/docs/catmullrom.pdf的翻譯】
有時候我們想要物體從一個點移動到另一個點,但並不希望它沿着直線移動過去,而是稍微彎曲一點,這時候catmull-rom樣條就派上用場了。推導其實很簡單。
比如,我們想要構造P0到P1之間的曲線P(t),P(t)是如下待求解的三次曲線
p-1和p2是控制點,滿足如下方程, 是0到1之間的參數,用來控制曲線的尾部與控制點之間的平行程度。
由於
於是
設
由等式[2]可得到:
由等式[3]可得到:
[4a]和[4b]聯合可得:
繼續化簡:
參數 也可以理解爲曲線的「緊張程度」。通常取0.5。
最終解出方程
效果如下:
對於多條線段,那麼對於第i控制點,方程在x座標軸上如下:
效果如下:
歡迎在知乎關注我!