孔令德 康鳳娥
(太原工業(yè)學(xué)院 山西 太原 030008)
基于雙三次Bezier曲面在球體建模中的應(yīng)用
孔令德 康鳳娥
(太原工業(yè)學(xué)院 山西 太原 030008)
傳統(tǒng)球體建模的幾何元素是由非參數(shù)表示的數(shù)學(xué)方程生成,建模過(guò)程繁瑣,不易形變生成其他模型。針對(duì)這些不足,提出基于雙三次Bezier曲面的球體建模方法。采用de Casteljau細(xì)分算法,反求圓和橢圓的雙三次Bezier曲面的控制點(diǎn),獲得了影響B(tài)ezier曲面控制點(diǎn)的魔術(shù)常數(shù),給出了球體雙三次Bezier曲面的控制點(diǎn)坐標(biāo),實(shí)現(xiàn)了基于三次Bezier曲面的三維球體、橢球體網(wǎng)格模型的繪制。通過(guò)調(diào)整控制點(diǎn)參數(shù),生成了類似蛋形體以及蘋(píng)果體等曲面體網(wǎng)格模型。實(shí)驗(yàn)結(jié)果表明,魔術(shù)常數(shù)為計(jì)算旋轉(zhuǎn)體模型的控制點(diǎn)提供了新的技術(shù)支持,Bezier方法進(jìn)行三維建模具有很強(qiáng)的設(shè)計(jì)靈活性和實(shí)用性。
計(jì)算機(jī)應(yīng)用 雙三次Bezier曲面 de Casteljau細(xì)分算法 控制點(diǎn)
Bezier曲線曲面因便于設(shè)計(jì)者操作,因此廣泛應(yīng)用于航空航天、模具、汽車外形等各種復(fù)雜曲面的設(shè)計(jì)中,例如汽車的引擎罩、輪船的船體,日常生活中的蘋(píng)果、雞蛋等。Bezier曲線由法國(guó)雪鐵龍(Citroen)汽車公司的De Casteljau于1959年發(fā)明,但作為公司的技術(shù)機(jī)密,直到1975年之后才引起人們的注意。1962年法國(guó)雷諾(Renault)汽車公司的工程師Bezier獨(dú)立提出了曲線曲面。其優(yōu)點(diǎn)是曲線曲面參數(shù)化表示脫離了對(duì)坐標(biāo)的賴,其構(gòu)造簡(jiǎn)單直觀、易于顯示和控制,給設(shè)計(jì)者帶來(lái)了極大的方便,已經(jīng)成為CAD中用于描述形狀信息的主要工具。
在工程應(yīng)用中,對(duì)于圓弧的造型方法有多種,如中點(diǎn)生成橢圓的整數(shù)型算法[1]、雙步圓的反走樣生成算法[2]、利用殘差控制的快速圓弧生成與反走樣算法[3]等。這些曲線是由已知曲線的非參數(shù)表示的數(shù)學(xué)方程生成的,與非參數(shù)表示相比,參數(shù)表示的曲線曲面更能滿足形狀數(shù)學(xué)描述的要求[4],Bezier曲線曲面就是一種以逼近為基礎(chǔ)的參數(shù)曲線曲面。近年來(lái),國(guó)內(nèi)有諸多學(xué)者對(duì)基于Bezier曲線表示的圓弧已有研究。杭后俊等[5]通過(guò)引入一個(gè)可在一定范圍內(nèi)變化的參數(shù),得到同一圓弧不同標(biāo)準(zhǔn)型有理三次Bezier表示;儲(chǔ)理才等[6]研究了誤差函數(shù)有5個(gè)相異零點(diǎn)的情形,給出圓弧的四次Bezier曲線控制頂點(diǎn)的計(jì)算公式, 誤差的解析表達(dá)式和逼近階;尤偉等[7]為了解決由Bezier曲線上型值點(diǎn)反求控制點(diǎn)矩陣求逆的大運(yùn)算量問(wèn)題,提出了先把。數(shù)目較多的一組型值點(diǎn)按序分解成幾組數(shù)目較少型值點(diǎn),再把這幾組型值點(diǎn)逐個(gè)生成控制點(diǎn),這樣把一個(gè)高階矩陣求逆轉(zhuǎn)化為幾個(gè)低階矩陣的求逆。上述學(xué)者較多是在已知控制點(diǎn)的前提下對(duì)曲線表達(dá)式進(jìn)行研究,但是Bezier曲線從一開(kāi)始就面向幾何而不是面向代數(shù)的,著名Utah Teapot就是面向幾何用雙三次Beizer曲面建模的一個(gè)經(jīng)典例子[8]。只有將函數(shù)逼近與幾何表示結(jié)合起來(lái),才能使得設(shè)計(jì)者在工程設(shè)計(jì)中更加直觀地觀察到所給條件與設(shè)計(jì)曲線之間的關(guān)系,通過(guò)調(diào)整控制點(diǎn)參數(shù)靈活方便地設(shè)計(jì)出所希望的形狀。
本文以球體,橢球體為研究對(duì)象,從構(gòu)建雙三次Bezier曲面控制點(diǎn)出發(fā),采用de Casteljau細(xì)分算法,解得一個(gè)影響控制點(diǎn)參數(shù)的魔術(shù)常數(shù),給出了球體雙三次Bezier曲面的控制點(diǎn)坐標(biāo),其他卦限控制點(diǎn)坐標(biāo)可對(duì)稱獲得。實(shí)現(xiàn)了用雙三次Bezier曲面繪制三維球體、橢球體網(wǎng)格模型,調(diào)整控制點(diǎn)參數(shù)實(shí)現(xiàn)生成雞蛋體以及蘋(píng)果體等網(wǎng)格模型,繪制圖形光滑拼接,充分顯示了用參數(shù)Bezier曲線曲面表示曲面體的設(shè)計(jì)靈活性。
De Casteljau細(xì)分算法其構(gòu)造思想是從一個(gè)控制多邊形或者控制網(wǎng)格出發(fā),按一定的細(xì)分規(guī)則插入新頂點(diǎn),再連接這些新頂點(diǎn)得到新控制多邊形或控制網(wǎng)格,將所得新控制多邊形或控制網(wǎng)格再作為初始控制多邊形或控制網(wǎng)格,重復(fù)上述細(xì)分過(guò)程,這樣循環(huán)細(xì)分下去,控制多邊形或控制網(wǎng)格就被逐漸加細(xì),其極限成為一條曲線或一張曲面[9]。
給定空間n+1個(gè)控制點(diǎn)Pi(i=0,1,…,n)及參數(shù)t,DeCasteljau細(xì)分算法表述為:
(1)
DeCasteljau算法的幾何作圖是在線段P0P1上選擇一個(gè)點(diǎn)P(t),使得P(t)點(diǎn)劃分P0P1為t:(1-t)兩段,如圖1所示。給定點(diǎn)P0、P1的坐標(biāo)以及t的值,點(diǎn)P(t)的坐標(biāo)為P(t)=P0+t(P1-P0)=(1-t)P0+tP1,t∈[0,1]。
圖1 De Casteljau算法基礎(chǔ)
圖2 細(xì)分過(guò)程
Bezier曲線曲面因方便設(shè)計(jì)者操作而廣泛應(yīng)用于各種復(fù)雜的曲面造型中,Bezier曲線曲面是通過(guò)其控制點(diǎn)定義的,有關(guān)Bezier曲線曲面造型的算法也都是在已知控制點(diǎn)的前提下描述的,而在Bezier曲線曲面的設(shè)計(jì)中,首先要知道控制點(diǎn)的的準(zhǔn)確位置,這在造型設(shè)計(jì)中有著重要意義。下面將以三次Bezier逼近圓弧為例,說(shuō)明采用deCasteljau細(xì)分算法,獲得影響控制點(diǎn)參數(shù)的一個(gè)魔術(shù)常數(shù)。
2.1 反求圓弧的三次Bezier控制點(diǎn)
(2)
圖3 三次Bezier曲線逼近1/4圓
(3)
根據(jù)圓的對(duì)稱性可繪制圓的其它3段三次Bezier曲線,顯然,每?jī)啥蜝ezier曲線達(dá)到了G0連續(xù):第一段三次Bezier曲線的終止點(diǎn)是第二段三次Bezier曲線的起點(diǎn);同時(shí)達(dá)到了G1連續(xù):連接點(diǎn)處與相鄰兩側(cè)的控制點(diǎn)三點(diǎn)共線,且與連接點(diǎn)相鄰的兩控制點(diǎn)位于連接點(diǎn)的兩側(cè),因此一個(gè)整圓的四段三次Bezier曲線實(shí)現(xiàn)了光滑拼接。
2.2 反求橢圓的三次Bezier控制點(diǎn)
同反求圓的控制點(diǎn)方法類似,建立如圖4所示的坐標(biāo)系,將橢圓弧分成4個(gè)部分,用一段三次Bezier曲線逼近1/4橢圓弧。
圖4 三次Bezier曲線逼近1/4橢圓
b2x2+a2y2-a2b2=0
(4)
在同一坐標(biāo)系,使用四段三次Bezier曲線繪制一個(gè)紅色圓(橢圓)曲線,再使用MFC繪圖函數(shù)在同一圓心,以相同的半徑繪制一個(gè)藍(lán)色的圓(橢圓)曲線,結(jié)果顯示,兩種方法繪制的圖形完全重合。
3.1 球的雙三次Bezier曲面控制點(diǎn)算法
建立如圖5所示的坐標(biāo)系,直角坐標(biāo)系的坐標(biāo)軸將球分為8個(gè)卦限,每個(gè)卦限的球面用一張雙三次Bezier曲面表示,逆時(shí)針?lè)较?、由上至下依次拼?張曲面完成實(shí)現(xiàn)Bezier方法繪制一個(gè)完整球體表面。
圖6為第一卦限球的雙三次Bezier曲面的16個(gè)控制點(diǎn),其中位于Bezier曲面片一邊的01、10、20、30四個(gè)控制點(diǎn)退化為一個(gè)點(diǎn)。將上述二維坐標(biāo)系下反求1/4圓控制點(diǎn)的方法,應(yīng)用到求解三維坐標(biāo)系下兩組正交的三次Bezier曲線控制點(diǎn)。方法是:先求雙三次Bezier曲面的四個(gè)角點(diǎn)坐標(biāo),然后利用魔術(shù)常數(shù)為影響因子,通過(guò)角點(diǎn)坐標(biāo)計(jì)算曲線的另外兩個(gè)控制點(diǎn)坐標(biāo)值。
圖5 直角坐標(biāo)系與球坐標(biāo)系 圖6 Bezier曲面的控制點(diǎn)
為了便于計(jì)算和程序?qū)崿F(xiàn),將曲面控制點(diǎn)用球坐標(biāo)表示,如圖6所示,r為球面Ov點(diǎn)到球心Ow之間的距離,r與y軸的夾角為,r在xOwz面投影線與z軸的夾角為φ,則Ov點(diǎn)的球坐標(biāo)與笛卡爾坐標(biāo)的關(guān)系為:
(5)
由于雙三次Bezier曲面的四個(gè)角控制點(diǎn)00、03、30、33位于球的表面,因此它們的坐標(biāo)值用球坐標(biāo)表示為:
對(duì)于位于球面之外的Bezier曲面的控制點(diǎn)坐標(biāo),可以通過(guò)魔術(shù)常數(shù)m作為曲面四個(gè)角點(diǎn)的影響因子加以計(jì)算獲得。計(jì)算順序?yàn)椋和ㄟ^(guò)00和03角點(diǎn)計(jì)算出01和02控制點(diǎn),30和33角點(diǎn)計(jì)算出31和32控制點(diǎn),03和33角點(diǎn)計(jì)算出13和23控制點(diǎn),然后再用控制點(diǎn)01和31計(jì)算出11和21控制點(diǎn),由02和32控制點(diǎn)計(jì)算出12和22控制點(diǎn),至此第一卦限三次Bezier曲面的16個(gè)控制點(diǎn)全部求出,用同樣的方法獲得其他卦限曲面的控制點(diǎn)坐標(biāo)。
限于篇幅下面給出第一卦限雙三次Bezier曲面片的控制點(diǎn)坐標(biāo),見(jiàn)表1所示,其中m為魔術(shù)常數(shù)。其他卦限的控制點(diǎn)坐標(biāo)可根據(jù)球的對(duì)稱性求得。
表1 球體第一卦限雙三次Bezier曲面控制點(diǎn)數(shù)據(jù)
3.2 繪制球體網(wǎng)格模型
三次Bezier曲面的參數(shù)多項(xiàng)式為:
(u,v)∈[0,1]×[0,1]()
將Bezier曲面方程改寫(xiě)成矩陣形式為:
球體曲面網(wǎng)格模型由8張雙三次Bezier曲面片組成,使用表1節(jié)給出的控制點(diǎn)數(shù)據(jù),對(duì)稱求出其他卦限曲面片控制點(diǎn)坐標(biāo),當(dāng)參數(shù)u和v在區(qū)間[0,1]內(nèi),以u(píng)+=0.1和v+=0.1遍歷時(shí),生成球的雙三次Bezier曲面網(wǎng)格模型,以VisualC++為平臺(tái)繪制的球體曲面網(wǎng)格模型和帶控制多邊形的網(wǎng)格模型如圖7所示。
圖7 球體雙三次Bezier曲面網(wǎng)格模型
3.3 繪制其他曲面體網(wǎng)格模型
橢球曲面模型的控制點(diǎn)的計(jì)算,和球體曲面模型控制點(diǎn)計(jì)算方法類似,將橢球按卦限分為8個(gè)部分,每個(gè)卦限為一張雙三次Bezier曲面片,用球坐標(biāo)表示出第一卦限曲面片四個(gè)角點(diǎn)(位于橢球上的控制點(diǎn))的坐標(biāo)值,曲面片的其他12個(gè)控制點(diǎn)(位于橢球之外)依次使用橢球的魔術(shù)常數(shù)進(jìn)行計(jì)算,并用對(duì)稱的方法獲得其他卦限的曲面片控制點(diǎn)坐標(biāo)。以VisualC++為平臺(tái)繪制的橢球曲面網(wǎng)格模型和帶控制多邊形的網(wǎng)格模型如圖8為所示。
圖8 橢球雙三次Bezier曲面網(wǎng)格模型
Bezier曲線還可以通過(guò)調(diào)整控制點(diǎn)參數(shù)模擬更多的形狀。事實(shí)上雞蛋的形狀是多種多樣的,利用傳統(tǒng)的函數(shù)繪制的雞蛋固定長(zhǎng)半軸參數(shù)a和短半軸參數(shù)b后,其形狀是確定的,利用Bezier曲面卻可以模擬多種雞蛋形狀。如圖9所示,雞蛋右側(cè)邊緣由兩段三次Bezier曲線組成,上段為1/4橢圓弧,下端為1/4圓弧,水平截面邊緣則有4段三次Bezier圓弧構(gòu)成,調(diào)節(jié)控制點(diǎn)參數(shù)可產(chǎn)生其他形狀的蛋形。當(dāng)調(diào)節(jié)球體“南北極”控制點(diǎn)參數(shù)可生成桃形、蘋(píng)果形等模型。以VisualC++為平臺(tái)繪制的雞蛋和蘋(píng)果曲面網(wǎng)格模型和帶控制多邊形的網(wǎng)格模型如圖9、圖10所示。
圖9 雞蛋雙三次Bezier曲面網(wǎng)格模型
圖10 蘋(píng)果雙三次Bezier曲面網(wǎng)格模型
[1] 張博,周麗韞,李興霞.中點(diǎn)生成橢圓的整數(shù)型算法[J].工程圖學(xué)學(xué)報(bào),2011,32(1):1-4.
[2] 牛玉靜,唐棣.雙步圓的反走樣生成算法[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(23):175-177,248.
[3] 牛連強(qiáng),馮海文,吳澎.利用殘差控制的快速圓弧生成與反走樣算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2011,23(2):232-239.
[4] 郭鳳華.幾何造型中參數(shù)化與擬合技術(shù)的研究[D].濟(jì)南:山東大學(xué),2007.
[5] 杭后俊,李汪根.有理三次Bezier曲線表示圓弧的一種實(shí)用方法[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(6):185-189.
[6] 儲(chǔ)理才,曾曉明.圓弧的四次Bezier曲線逼近研究[C]//第四屆全國(guó)幾何設(shè)計(jì)與計(jì)算學(xué)術(shù)會(huì)議論文集,2009:69-74.
[7] 尤偉,達(dá)飛鵬,蓋紹彥.逆向工程中求取特征曲線的算法研究[C]//第十二屆全國(guó)圖象圖形學(xué)學(xué)術(shù)會(huì)議論文集,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細(xì)分曲線[J].科學(xué)技術(shù)與工程,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。山西省高等學(xué)校重點(diǎn)教改基金項(xiàng)目(J2011108)??琢畹?,教授,主研領(lǐng)域:圖形圖像處理。康鳳娥,高級(jí)實(shí)驗(yàn)師。
TP391.7
A
10.3969/j.issn.1000-386x.2017.05.015