孔令德 康鳳娥
(太原工業學院 山西 太原 030008)
基于雙三次Bezier曲面在球體建模中的應用
孔令德 康鳳娥
(太原工業學院 山西 太原 030008)
傳統球體建模的幾何元素是由非參數表示的數學方程生成,建模過程繁瑣,不易形變生成其他模型。針對這些不足,提出基于雙三次Bezier曲面的球體建模方法。采用de Casteljau細分算法,反求圓和橢圓的雙三次Bezier曲面的控制點,獲得了影響Bezier曲面控制點的魔術常數,給出了球體雙三次Bezier曲面的控制點坐標,實現了基于三次Bezier曲面的三維球體、橢球體網格模型的繪制。通過調整控制點參數,生成了類似蛋形體以及蘋果體等曲面體網格模型。實驗結果表明,魔術常數為計算旋轉體模型的控制點提供了新的技術支持,Bezier方法進行三維建模具有很強的設計靈活性和實用性。
計算機應用 雙三次Bezier曲面 de Casteljau細分算法 控制點
Bezier曲線曲面因便于設計者操作,因此廣泛應用于航空航天、模具、汽車外形等各種復雜曲面的設計中,例如汽車的引擎罩、輪船的船體,日常生活中的蘋果、雞蛋等。Bezier曲線由法國雪鐵龍(Citroen)汽車公司的De Casteljau于1959年發明,但作為公司的技術機密,直到1975年之后才引起人們的注意。1962年法國雷諾(Renault)汽車公司的工程師Bezier獨立提出了曲線曲面。其優點是曲線曲面參數化表示脫離了對坐標的賴,其構造簡單直觀、易于顯示和控制,給設計者帶來了極大的方便,已經成為CAD中用于描述形狀信息的主要工具。
在工程應用中,對于圓弧的造型方法有多種,如中點生成橢圓的整數型算法[1]、雙步圓的反走樣生成算法[2]、利用殘差控制的快速圓弧生成與反走樣算法[3]等。這些曲線是由已知曲線的非參數表示的數學方程生成的,與非參數表示相比,參數表示的曲線曲面更能滿足形狀數學描述的要求[4],Bezier曲線曲面就是一種以逼近為基礎的參數曲線曲面。近年來,國內有諸多學者對基于Bezier曲線表示的圓弧已有研究。杭后俊等[5]通過引入一個可在一定范圍內變化的參數,得到同一圓弧不同標準型有理三次Bezier表示;儲理才等[6]研究了誤差函數有5個相異零點的情形,給出圓弧的四次Bezier曲線控制頂點的計算公式, 誤差的解析表達式和逼近階;尤偉等[7]為了解決由Bezier曲線上型值點反求控制點矩陣求逆的大運算量問題,提出了先把。數目較多的一組型值點按序分解成幾組數目較少型值點,再把這幾組型值點逐個生成控制點,這樣把一個高階矩陣求逆轉化為幾個低階矩陣的求逆。上述學者較多是在已知控制點的前提下對曲線表達式進行研究,但是Bezier曲線從一開始就面向幾何而不是面向代數的,著名Utah Teapot就是面向幾何用雙三次Beizer曲面建模的一個經典例子[8]。只有將函數逼近與幾何表示結合起來,才能使得設計者在工程設計中更加直觀地觀察到所給條件與設計曲線之間的關系,通過調整控制點參數靈活方便地設計出所希望的形狀。
本文以球體,橢球體為研究對象,從構建雙三次Bezier曲面控制點出發,采用de Casteljau細分算法,解得一個影響控制點參數的魔術常數,給出了球體雙三次Bezier曲面的控制點坐標,其他卦限控制點坐標可對稱獲得。實現了用雙三次Bezier曲面繪制三維球體、橢球體網格模型,調整控制點參數實現生成雞蛋體以及蘋果體等網格模型,繪制圖形光滑拼接,充分顯示了用參數Bezier曲線曲面表示曲面體的設計靈活性。
De Casteljau細分算法其構造思想是從一個控制多邊形或者控制網格出發,按一定的細分規則插入新頂點,再連接這些新頂點得到新控制多邊形或控制網格,將所得新控制多邊形或控制網格再作為初始控制多邊形或控制網格,重復上述細分過程,這樣循環細分下去,控制多邊形或控制網格就被逐漸加細,其極限成為一條曲線或一張曲面[9]。
給定空間n+1個控制點Pi(i=0,1,…,n)及參數t,DeCasteljau細分算法表述為:

(1)

DeCasteljau算法的幾何作圖是在線段P0P1上選擇一個點P(t),使得P(t)點劃分P0P1為t:(1-t)兩段,如圖1所示。給定點P0、P1的坐標以及t的值,點P(t)的坐標為P(t)=P0+t(P1-P0)=(1-t)P0+tP1,t∈[0,1]。

圖1 De Casteljau算法基礎


圖2 細分過程
Bezier曲線曲面因方便設計者操作而廣泛應用于各種復雜的曲面造型中,Bezier曲線曲面是通過其控制點定義的,有關Bezier曲線曲面造型的算法也都是在已知控制點的前提下描述的,而在Bezier曲線曲面的設計中,首先要知道控制點的的準確位置,這在造型設計中有著重要意義。下面將以三次Bezier逼近圓弧為例,說明采用deCasteljau細分算法,獲得影響控制點參數的一個魔術常數。
2.1 反求圓弧的三次Bezier控制點


(2)

圖3 三次Bezier曲線逼近1/4圓
(3)
根據圓的對稱性可繪制圓的其它3段三次Bezier曲線,顯然,每兩段Bezier曲線達到了G0連續:第一段三次Bezier曲線的終止點是第二段三次Bezier曲線的起點;同時達到了G1連續:連接點處與相鄰兩側的控制點三點共線,且與連接點相鄰的兩控制點位于連接點的兩側,因此一個整圓的四段三次Bezier曲線實現了光滑拼接。
2.2 反求橢圓的三次Bezier控制點
同反求圓的控制點方法類似,建立如圖4所示的坐標系,將橢圓弧分成4個部分,用一段三次Bezier曲線逼近1/4橢圓弧。

圖4 三次Bezier曲線逼近1/4橢圓

b2x2+a2y2-a2b2=0
(4)


在同一坐標系,使用四段三次Bezier曲線繪制一個紅色圓(橢圓)曲線,再使用MFC繪圖函數在同一圓心,以相同的半徑繪制一個藍色的圓(橢圓)曲線,結果顯示,兩種方法繪制的圖形完全重合。
3.1 球的雙三次Bezier曲面控制點算法
建立如圖5所示的坐標系,直角坐標系的坐標軸將球分為8個卦限,每個卦限的球面用一張雙三次Bezier曲面表示,逆時針方向、由上至下依次拼接8張曲面完成實現Bezier方法繪制一個完整球體表面。
圖6為第一卦限球的雙三次Bezier曲面的16個控制點,其中位于Bezier曲面片一邊的01、10、20、30四個控制點退化為一個點。將上述二維坐標系下反求1/4圓控制點的方法,應用到求解三維坐標系下兩組正交的三次Bezier曲線控制點。方法是:先求雙三次Bezier曲面的四個角點坐標,然后利用魔術常數為影響因子,通過角點坐標計算曲線的另外兩個控制點坐標值。

圖5 直角坐標系與球坐標系 圖6 Bezier曲面的控制點
為了便于計算和程序實現,將曲面控制點用球坐標表示,如圖6所示,r為球面Ov點到球心Ow之間的距離,r與y軸的夾角為,r在xOwz面投影線與z軸的夾角為φ,則Ov點的球坐標與笛卡爾坐標的關系為:

(5)
由于雙三次Bezier曲面的四個角控制點00、03、30、33位于球的表面,因此它們的坐標值用球坐標表示為:

對于位于球面之外的Bezier曲面的控制點坐標,可以通過魔術常數m作為曲面四個角點的影響因子加以計算獲得。計算順序為:通過00和03角點計算出01和02控制點,30和33角點計算出31和32控制點,03和33角點計算出13和23控制點,然后再用控制點01和31計算出11和21控制點,由02和32控制點計算出12和22控制點,至此第一卦限三次Bezier曲面的16個控制點全部求出,用同樣的方法獲得其他卦限曲面的控制點坐標。
限于篇幅下面給出第一卦限雙三次Bezier曲面片的控制點坐標,見表1所示,其中m為魔術常數。其他卦限的控制點坐標可根據球的對稱性求得。

表1 球體第一卦限雙三次Bezier曲面控制點數據
3.2 繪制球體網格模型
三次Bezier曲面的參數多項式為:
(u,v)∈[0,1]×[0,1]()
將Bezier曲面方程改寫成矩陣形式為:
球體曲面網格模型由8張雙三次Bezier曲面片組成,使用表1節給出的控制點數據,對稱求出其他卦限曲面片控制點坐標,當參數u和v在區間[0,1]內,以u+=0.1和v+=0.1遍歷時,生成球的雙三次Bezier曲面網格模型,以VisualC++為平臺繪制的球體曲面網格模型和帶控制多邊形的網格模型如圖7所示。

圖7 球體雙三次Bezier曲面網格模型
3.3 繪制其他曲面體網格模型
橢球曲面模型的控制點的計算,和球體曲面模型控制點計算方法類似,將橢球按卦限分為8個部分,每個卦限為一張雙三次Bezier曲面片,用球坐標表示出第一卦限曲面片四個角點(位于橢球上的控制點)的坐標值,曲面片的其他12個控制點(位于橢球之外)依次使用橢球的魔術常數進行計算,并用對稱的方法獲得其他卦限的曲面片控制點坐標。以VisualC++為平臺繪制的橢球曲面網格模型和帶控制多邊形的網格模型如圖8為所示。

圖8 橢球雙三次Bezier曲面網格模型
Bezier曲線還可以通過調整控制點參數模擬更多的形狀。事實上雞蛋的形狀是多種多樣的,利用傳統的函數繪制的雞蛋固定長半軸參數a和短半軸參數b后,其形狀是確定的,利用Bezier曲面卻可以模擬多種雞蛋形狀。如圖9所示,雞蛋右側邊緣由兩段三次Bezier曲線組成,上段為1/4橢圓弧,下端為1/4圓弧,水平截面邊緣則有4段三次Bezier圓弧構成,調節控制點參數可產生其他形狀的蛋形。當調節球體“南北極”控制點參數可生成桃形、蘋果形等模型。以VisualC++為平臺繪制的雞蛋和蘋果曲面網格模型和帶控制多邊形的網格模型如圖9、圖10所示。

圖9 雞蛋雙三次Bezier曲面網格模型

圖10 蘋果雙三次Bezier曲面網格模型

[1] 張博,周麗韞,李興霞.中點生成橢圓的整數型算法[J].工程圖學學報,2011,32(1):1-4.
[2] 牛玉靜,唐棣.雙步圓的反走樣生成算法[J].計算機工程與應用,2010,46(23):175-177,248.
[3] 牛連強,馮海文,吳澎.利用殘差控制的快速圓弧生成與反走樣算法[J].計算機輔助設計與圖形學學報,2011,23(2):232-239.
[4] 郭鳳華.幾何造型中參數化與擬合技術的研究[D].濟南:山東大學,2007.
[5] 杭后俊,李汪根.有理三次Bezier曲線表示圓弧的一種實用方法[J].計算機工程與應用,2012,48(6):185-189.
[6] 儲理才,曾曉明.圓弧的四次Bezier曲線逼近研究[C]//第四屆全國幾何設計與計算學術會議論文集,2009:69-74.
[7] 尤偉,達飛鵬,蓋紹彥.逆向工程中求取特征曲線的算法研究[C]//第十二屆全國圖象圖形學學術會議論文集,2005:437-441.
[8] Crow F.The origins of the teapot[J].IEEE Computer Graphics and Applications,1987,7(1):8-19.
[9] 張永鋒,蔣大為,何磊,等.基于De Casteljau算法的Poisson細分曲線[J].科學技術與工程,2007,7(10):2263-2267.
APPLICATION OF SPHERICAL MODELING BASED ON BICUBIC BEZIER SURFACE
Kong Lingde Kang Feng’e
(TaiyuanInstituteofTechnology,Taiyuan030008,Shanxi,China)
The geometrical elements of traditional sphere modeling are generated by non-parametric mathematical equation, and the modeling process is complicated and difficult to be deformed to generate other models. Aiming at these problems, this paper proposes a spherical modeling method based on bicubic Bezier surface. Using the De Casteljau subdivision algorithm, the control points of the bicubic Bezier surface of circle and ellipse are solved, the magic constants of the Bezier surface control points are obtained, and the control point coordinates of the bicubic Bezier surface are given. It realizes the drawing of three-dimensional sphere and ellipsoidal grid model based on bicubic Bezier surface. By adjusting the parameters of the control points, a surface grid mode, which is similar to the egg body and the apple body, is generated. The experimental results show that the magic constants provide a new technical support for calculating the control points of the rotating body model, and the Bezier method has a strong design flexibility and practicability for three-dimensional modeling.
Computer application Bicubic Bezier surface De Casteljau subdivision algorithm Control point
2016-04-06。山西省高等學校重點教改基金項目(J2011108)。孔令德,教授,主研領域:圖形圖像處理。康鳳娥,高級實驗師。
TP391.7
A
10.3969/j.issn.1000-386x.2017.05.015