unity 貝塞爾曲線演算法

2021-08-20 07:57:36 字數 1648 閱讀 5056

在任意幾個點座標繪製出的一條曲線,就叫貝賽爾曲線。

線性公式

這個最簡單,就是很普通的插值演算法,給定p0,p1,t取值範圍0到1

// 線性

vector3 bezier(vector3 p0, vector3 p1, float t)

二次方公式

二次方的也不是很難理解,還是求插值,p0和p1的插值,p1和p2的插值,在求這兩個插值(vector3)的插值

// 二階曲線

vector3 bezier(vector3 p0, vector3 p1, vector3 p2, float t)

三次方公式

三次方的曲線其實和二次沒有太大區別,不過是多了乙個點,就多了一層要計算的插值

// 三階曲線

vector3 bezier(vector3 p0, vector3 p1, vector3 p2, vector3 p3, float t)

n次方公式

最後乙個,最難的n次方的公式,其實這個只要能把前面兩個理解了,最後乙個也不難,都是有規律的,就是不停的去計算插值;點1和點2插值,產生出新的點,點2和點3插值,又產生乙個點,依次迴圈,直到最後只剩下乙個點。

// n階曲線,遞迴實現

public vector3 bezier(float t, listp)

return bezier(t, newp);

}// transform轉換為vector3,在呼叫引數為list的bezier函式

在unity裡實現的效果

Unity 貝塞爾曲線

貝塞爾曲線就是畫圖中的鋼筆工具,確定幾個點就可以完美顯示一條光滑曲線。線性公式 給定點p0 p1,線性貝茲曲線只是一條兩點之間的直線。這條線由下式給出 且其等同於線性插值 二次方公式 二次方貝茲曲線的路徑由給定點p0 p1 p2的函式b t 追蹤 truetype字型就運用了以貝茲樣條組成的二次貝茲...

Unity 貝塞爾曲線

貝塞爾曲線的知識和原理請參考 這裡我只是寫一下我怎麼理解和使用的,什麼是貝塞爾曲線,在起點和終點之間由多個控制點進行差值運算的一條曲線,通過不斷的在兩點之間獲取差值來求得最終的點位實現曲線繪製 所有方塊都是控制點位,第乙個是起點,最後乙個是終點。serializefield private tran...

貝塞爾曲線

1.概述 貝塞爾曲線 b zier curve 又稱 貝茲曲線或貝濟埃曲線,是應用於二維圖形應用程式的數學曲線。一般的向量圖形 軟體通過它來精確畫出曲線,貝茲曲線由 線段與節點組成,節點是可拖動的支點,線段像可伸縮的皮筋,我們在繪圖工具上看到的鋼筆工具就是來做這種向量曲線的。貝塞爾曲線是計算機圖形學...