Catmull Rom curve 是一種曲線生成的方式,可以讓路線圓滑的同時使路線經過所有控制點。
Try it out:
先看四個點
以四個點生成路徑的方式為
xnew(t)=21((−t3+2t2−t)x1+(3t3−5t2+2)x2+(−3t3+4t2+t)x3+(t3−t2)x4) ynew(t)=21((−t3+2t2−t)y1+(3t3−5t2+2)y2+(−3t3+4t2+t)y3+(t3−t2)y4) t 為路線的進度。0 代表在一開始,1 代表在路線的結尾
合併多個控制點
我們可以把整條路線分為小線段。設 t 的最大值為控制點的數量 - 3,可以得到線段的數量。當 t 在 0 到 1 之間時,設 (x1,y1),(x2,y2),(x3,y3),(x4,y4)為路線一開始的四個控制點,進行計算。當 t 在 1 到 2 之間時,設 (x1,y1)為上一步的 (x2,y2); 設 (x2,y2)為上一步的 (x3,y3); 設 (x3,y3)為上一步的 (x4,y4); 設 (x4,y4)為下一個控制點,進行計算,以此類推。
Desmos
更多資訊