有理贝塞尔曲线(Rational Bezier Curves)
有理貝塞爾曲線(Rational B′ezier Curves)
1、定義
有理貝塞爾曲線(Rational B′ezier Curves)
控制點為 b0,?,bn 的n階有理貝塞爾曲線定義為:
B(t)=∑ni=0ωibiBi,n(t)∑ni=0ωiBi,n(t),t∈[0.1]
令 bi=(xi,yi,zi),定義齊次控制點 b^i 為:
b^i={(ωixi,ωixi,ωixi,ωi),(xi,yi,zi,0),ifωi≠0ifωi=0
旋轉貝塞爾曲線的齊次形式可表示為:
B(t)=∑i=onb^iBi,n(t)
用基本形式表示為:
B(t)=∑i=obiRi,n(t)
其中:
Ri,n(t)=???????ωiBi,n(t)∑nj=0ωjBj,n(t)Bi,n(t)∑nj=0Bj,n(t)ifωi≠0ifωi=0
2、性質
凸包性質
假設,ωi>0,i∈[0,1],
那么,貝塞爾曲線上的點在其控制點定義的凸包內仿射變換不變性
T(∑ni=0ωibiBi,n(t)∑ni=0ωiTBi,n(t))=∑ni=0ωibiBi,n(t)∑ni=0ωiBi,n(t),T為仿射變換
變差縮減性質
假設,ωi>0,quadi∈[0,1],
對平面貝塞爾曲線 B(t) 和給定的直線,貝塞爾曲線與直線的交點個數不大于其控制多邊形和直線的交點的個數。端點插值性質:
B(0)=bo,B(1)=bn
端點切線定理:
B′(0)=n(ω1?ω0),B′(1)=n(ωn?ωn?1)
投影變換不變性
T(sumni=0b^iBi,n(t))=sumni=0T(b^i)Bi,n(t),T為仿射變換
3、定理
假設:ωk??>ωk+δωk, 則每一個點 b=B(t) 變化為點 bω=(1?α)b+αbω,
其中, α=δωkBk,n(t)∑ni=0ωiBi,n(t)+δωkBk,n(t)
4、de Casteljau 算法
計算方法是普通由貝塞爾曲線擴展而來,有兩種途徑實現算法。
1、假設
B(t)=∑ni=0ωibiBi,n(t)∑ni=0ωiBi,n(t) ,其中, bi=(xi,yi),b^i=(ωixi,ωiyi,ωi) , 或者 bi=(xi,yi,zi),b^i=(ωixi,ωiyi,ωizi,ωi) ,對于平面曲線,和貝塞爾曲線 的算法一樣,把 ωi看做附加坐標。
2、第一種方法簡單快捷,但很容易出錯。避免錯誤的方法是,在每次迭代結束時,把齊次控制點轉換到笛卡爾坐標系下。顯得算法如下:
?????bji=bj?1i(1?t)ωj?1iωji+bj?1i+1tωj?1i+1ωjiωji=ωj?1i(1?t)+ωj?1i+1t
其中:
i=0,?,n?j,j=1,?,n
有理算法,計算了 B(t) 及其分支在時刻 t 時的點。
5、投影
令 M4×4 為投影矩陣,在齊次坐標系下,有理貝塞爾曲線
B(t)=∑ni=0ωibiBi,n(t)∑ni=0ωiBi,n(t)
(其中: bi=(xi,yi,zi ) 可以表示為:
B(t)=∑i=0nb^iBi,n(t)
( 其中: b^i={(ωixi,ωixi,ωixi,ωi),(xi,yi,zi,0),ifωi≠0ifωi=0 )
可以得到:
B(t)M=(∑i=0nb^iBi,n(t))M=∑i=0n(b^iM)Bi,n(t)=∑i=0nc^iBi,n(t)
其中,c^i=b^iM
總結
以上是生活随笔為你收集整理的有理贝塞尔曲线(Rational Bezier Curves)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贝塞尔曲线(Bezier Curves)
- 下一篇: 再论贝塞尔曲线