貝塞爾曲線是計算機圖形學和計算機輔助設計中最重要的曲線之一。
在機器人(特别是移動機器人)軌迹規劃中,經常用到貝塞爾曲線。
貝塞爾曲線是一種特殊的多項式曲線,n 階貝塞爾曲線由 n+1 個控制點來确定。
1、低階貝塞爾曲線
線性貝塞爾曲線
控制點為 b0(p0,q0) 和 b1(p1,q1) ,其多項式表示為:
(x(t),y(t))=(1−t)(p0,q0)+t(p1,q1),fort∈[0,1]
用向量形式表示為:
B(t)=(1−t)b0+tb1
二次貝塞爾曲線
控制點為 b0(p0,q0) 、 b1(p1,q1) 和 b2(p2,q2) ,其多項式表示為:
B(t)=(1−t)2(p0,q0)+2(1−t)t(p1,q1)+t2(p2,q2),fort∈[0,1]
三個控制點組成的圖形角控制三角形。
三次貝塞爾曲線
四個控制點為: b0,b1,b2,b3 ,三次貝塞爾曲線定義為:
B(t)=(1−t)3b0+3(1−t)2tb1+3(1−t)tb2+t3b3,fort∈[0,1]
三次貝塞爾曲線所能表示的形狀遠遠多于二次貝塞爾曲線,它可以表示環、尖角和拐點。
B′(0)=3(b1−b0), B′(1)=3(b3−b2)
表示初始點的切向量和最初兩個控制點的連線平行,終點的切向量和最後兩個控制點的連線平行。
2、一般貝塞爾曲線
給定 n+1 個控制點 b0,b1,⋯,bn , 則 n 階貝塞爾曲線定義為:
B(t)=∑i=0nbiBi,n(t)
其中:
Bi,n(t)={n!(n−i)!i!(1−t)n−iti,0,if 0≤i≤notherwise
稱作 n 階貝塞爾曲多項式或控制函數。
二項式展開定理:
(x+y)n=∑i=0nCinxn−iyi
其每一項的系數和貝塞爾曲線的系數形同。
3、貝塞爾曲多項式的性質:
- 統一性
各項系數之和為1
- 非負性
各項系數均大于0
- 對稱性
第i項系數和倒數第i項系數相同
- 遞歸性
遞歸性指其系數滿足下式:
Bi,n(t)=(1−t)Bi,n−1(t)+tBi−1,n−1(t),i=1,⋯,n,B−1,n−1(t)=Bn,n−1(t)=0
4、貝塞爾曲曲線的性質:
凸包(Convex Hulls):
在一個實數向量空間 V 中,對于給定的集合X,所有包含 X 的凸集(Convex)的交集S被稱為 X 的凸包
S:=⋂X≤K≤VK,k∈凸集
X 的凸集(Convex)可以用X内所有點 (x1,⋯,xn) 的線性組合來構造。
S:=[∑j=1ntjxj|xj∈X,∑j=1ntj=1,tj∈[0,1]]
在二維歐幾裡得空間中,凸包可想象為一條剛好包着所有點的橡皮圈。
性質1:
n 階貝塞爾曲線 B(t) ,控制點為 b0,⋯,bn , 滿足如下性質:
- 端點插值性質:
B(0)=bo,B(1)=bn
- 端點切線定理:
B′(0)=n(b1−b0),B′(1)=n(bn−bn−1)
- 凸包性質
B(t)∈S{bo,⋯,bn},∀t∈[0,1]
即:貝塞爾曲線上的點在其控制點定義的凸包内
- 仿射變換不變性
T(∑i=0nbiBi,n(t))=∑i=0nT(bi)Bi,n(t),T為仿射變換
- 變差縮減性質
對平面貝塞爾曲線 B(t) 和給定的直線,貝塞爾曲線與直線的交點個數不大于其控制多邊形和直線的交點的個數。
5、The de Casteljau Algorithm
貝塞爾曲線 n+1 個控制點 b0,b1,⋮,bn , t∈[0,1] ,那麼:
{B(t)=bn0bji=bj−1i(1−t)+bj−1i+1tb0i=bii=0,⋯,n−j,j=1,⋯,n
6、貝塞爾曲線分支
對于貝塞爾曲線 B(t)=∑ni=0biBi,n(t) , 其在時刻 t 被分成兩部分:
Bleft:bo0,b10,⋯,bn−10,bn0和 Bright:bn0,⋯,n1n−1,b0n ,
其中, bji 仍然由 de Casteljau Algorithm 計算出。
參考:
[]:https://en.wikipedia.org/wiki/Convex_hull
[]:Duncan M. Applied Geometry for Computer Graphics and CAD. Springer, .