貝塞爾曲線
貝塞爾曲線
貝塞爾曲線(Bézier curve),又稱貝茲曲線或貝濟埃曲線,是應用於二維圖形應用程序的數學曲線。一般的矢量圖形軟體通過它來精確畫出曲線,貝茲曲線由線段與節點組成,節點是可拖動的支點,線段像可伸縮的皮筋,我們在繪圖工具上看到的鋼筆工具就是來做這種矢量曲線的。貝塞爾曲線是計算機圖形學中相當重要的參數曲線,在一些比較成熟的點陣圖軟體中也有貝塞爾曲線工具,如PhotoShop等。在Flash4中還沒有完整的曲線工具,而在Flash5裡面已經提供出貝塞爾曲線工具。
貝塞爾曲線於1962,由法國工程師皮埃爾·貝塞爾(Pierre Bézier)所廣泛發表,他運用貝塞爾曲線來為汽車的主體進行設計。貝塞爾曲線最初由Paul de Casteljau於1959年運用de Casteljau演演演算法開發,以穩定數值的方法求出貝茲曲線。
貝塞爾曲線
貝塞爾曲線就是這樣的一條曲線,它是依據四個位置任意的點坐標繪製出的一條光滑曲線。在歷史上,研究貝塞爾曲線的人最初是按照已知曲線參數方程來確定四個點的思路設計出這種矢量曲線繪製法。貝塞爾曲線的有趣之處更在於它的“皮筋效應”,也就是說,隨著點有規律地移動,曲線將產生皮筋伸引一樣的變換,帶來視覺上的衝擊。1962年,法國數學家 Pierre Bézier第一個研究了這種矢量繪製曲線的方法,並給出了詳細的計算公式,因此按照這樣的公式繪製出來的曲線就用他的姓氏來命名是為貝塞爾曲線。
PierreBezier照片
給定點P0、P1,線性貝茲曲線只是一條兩點之間的直線。這條線由下式給出:
且其等同於線性插值。
二次方貝茲曲線的路徑由給定點P0、P1、P2的函數B(t)追蹤:
TrueType字型就運用了以貝茲樣條組成的二次貝茲曲線。
P0、P1、P2、P3四個點在平面或在三維空間中定義了三次方貝茲曲線。曲線起始於P0走向P1,並從P2的方向來到P3。一般不會經過P1或P2;這兩個點只是在那裡提供方向資訊。P0和P1之間的間距,決定了曲線在轉而趨進P3之前,走向P2方向的“長度有多長”。
曲線的參數形式為:
現代的成象系統,如PostScript、Asymptote和Metafont,運用了以貝茲樣條組成的三次貝茲曲線,用來描繪曲線輪廓。
階貝茲曲線可如下推斷。給定點,其貝茲曲線即:
如上公式可如下遞歸表達:用表示由點 所決定的貝茲曲線。
用平常話來說,階的貝茲曲線,即雙階貝茲曲線之間的插值。
1.開始於P0並結束於Pn的曲線,即所謂的端點插值法屬性。
2.曲線是直線的充分必要條件是所有的控制點都位在曲線上。同樣的,貝塞爾曲線是直線的充分必要條件是控制點共線。
3.曲線的起始點(結束點)相切於貝塞爾多邊形的第一節(最後一節)。
4.一條曲線可在任意點切割成兩條或任意多條子曲線,每一條子曲線仍是貝塞爾曲線。
5.一些看似簡單的曲線(如圓)無法以貝塞爾曲線精確的描述,或分段成貝塞爾曲線(雖然當每個內部控制點對單位圓上的外部控制點水平或垂直的的距離為時,分成四段的貝茲曲線,可以小於千分之一的最大半徑誤差近似於圓)。
6.位於固定偏移量的曲線(來自給定的貝塞爾曲線),又稱作偏移曲線(假平行於原來的曲線,如兩條鐵軌之間的偏移)無法以貝茲曲線精確的形成(某些瑣屑實例除外)。無論如何,現存的啟發法通常可為實際用途中給出近似值。
“貝賽爾”工具在photoshop中叫“鋼筆工具”;在CorelDraw中翻譯成“貝賽爾工具”;而在Fireworks中叫“畫筆”。它是用來“畫線”造型的一種專業工具。當然還有很多工具也可以完成畫線的工作,例如大家常用的photoshop里的直線、噴槍、畫筆工具,Fireworks里的直線、鉛筆和筆刷工具,CorelDraw里的自由筆,手繪工具等等。
用“貝塞爾”工具無論是畫直線或是曲線,都非常簡單,隨手可得。其操作特點是通過用滑鼠在面板上放置各個錨點,根據錨點的路徑和描繪的先後順序,產生直線或者是曲線的效果。我們都知道路徑由一個或多個直線段或曲線段組成。錨點標記路徑段的端點。在曲線段上,每個選中的錨點顯示一條或兩條方向線,方向線以方向點結束。方向線和方向點的位置確定曲線段的大小和形狀。移動這些元素將改變路徑中曲線的形狀,可以看右圖。路徑可以是閉合的,沒有起點或終點(如圓圈),也可以是開放的,有明顯的端點(如波浪線)。
貝塞爾曲線 | 貝塞爾曲線 |
貝塞爾曲線跟PS里的鋼筆的意思大概差不多,不過貝塞爾曲線沒有選取的功能。在這裡,要切記,不要和輪廓工具弄混,前者是通過調節點調節形狀,後者是調節形狀輪廓的粗細以及樣式。
補充幾點:
1、在任意工具情況下,在曲線上雙擊都可以換為形狀工具對曲線進行編輯;
2、在曲線上用形狀工具雙擊可以增加一個節點;
3、在曲線的節點上雙擊形狀工具可以刪除一個節點;
4、點陣圖可以用形狀工具點擊再拖動某一點可以進行任意形狀的編輯;
5、用形狀工具同時選中幾個節點可以進行移動;
6、在微調距離中設定一個數值再用形狀工具選中曲線的某一節點敲方向箭頭可以進行精確位移;
7徠、將某一個漢字或字母轉換為曲線就可以用形狀工具進行修理如將“下”的右邊的點拿掉等。
曲線對象上的節點可更改為尖突、平滑、對稱和線條4種類型。
貝塞爾曲線可以使用快捷鍵來改變現有節點的類型。利用形狀工具選擇節點,然後按“C”鍵,可以將平滑、對稱節點更改為尖突節點’或將尖突節點更改為平滑節點。還可以改變下一線段的切線方向。
貝塞爾曲線按“S”鍵可以將對稱節點改為平滑節點,或將尖突、平滑節點更改為對稱節點。還可以改變上下兩線段的切線方向。
貝塞爾曲線按“ALT“鍵,不鬆開左鍵,可以移動節點。
貝塞爾曲線按“CTRL”鍵,切點方向可以根據預設空間的限制角度任意放置。
貝塞爾曲線按“ESC”鍵,要連續畫不封閉且不連接的曲線。還可以一邊畫一邊對之前的節點進行任意移動。
貝塞爾曲線在CDR中,默認生成的節點除了閉合節點為尖突類型外,其餘都為對稱點。