蘇靜
摘要:NURBS是幾何建模領(lǐng)域一種最常用的建模方式。NURBS擁有很多良好的數(shù)學(xué)性質(zhì),該文在分析關(guān)于曲線(xiàn)曲面細(xì)分建模技術(shù)的基礎(chǔ)上,采用了節(jié)點(diǎn)插入方法進(jìn)行NURBS曲線(xiàn)曲面細(xì)分,設(shè)計(jì)了NURBS曲面細(xì)分建模小型系統(tǒng),將細(xì)分技術(shù)應(yīng)用于建模系統(tǒng),實(shí)現(xiàn)了三維曲面細(xì)分建模。
關(guān)鍵詞:NURBS;節(jié)點(diǎn)插入;NURBS建模系統(tǒng);細(xì)分
中圖分類(lèi)號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)15-0004-02
1 背景
NURBS是幾何建模領(lǐng)域一種最常用的建模方式。NURBS擁有很多良好的數(shù)學(xué)性質(zhì)。曲面細(xì)分技術(shù)的原理就是按照一套細(xì)分的規(guī)則對(duì)曲面進(jìn)行多次細(xì)分,使模型的曲面細(xì)分到一定的程度,讓模型看上去足夠的光滑細(xì)致。B樣條在處理二次曲線(xiàn)弧時(shí),人們發(fā)現(xiàn)B樣條并不能對(duì)除拋物線(xiàn)以外的二次曲線(xiàn)弧進(jìn)行精準(zhǔn)的表示,只能給出擬合的效果。而這種擬合的效果會(huì)造成更加復(fù)雜的問(wèn)題。因此,人們提出了非均勻有理B樣條方法,簡(jiǎn)稱(chēng)NURBS。NURBS繼承了B樣條的所有優(yōu)點(diǎn),在一定的條件下能進(jìn)行轉(zhuǎn)化為Bezier、B樣條等其他的曲線(xiàn)曲面,這意味著NURBS對(duì)產(chǎn)品形狀的描述有了統(tǒng)一的數(shù)學(xué)描述[1-2]。
NURBS節(jié)點(diǎn)插入技術(shù)就是在NURBS的節(jié)點(diǎn)矢量中插入一個(gè)節(jié)點(diǎn),插入節(jié)點(diǎn)后重新對(duì)節(jié)點(diǎn)矢量進(jìn)行排序,重新計(jì)算控制頂點(diǎn)和權(quán)因子的數(shù)值,然后再將其繪制出來(lái),繪制出來(lái)的曲線(xiàn)曲面和原來(lái)的形狀不變,NURBS的控制多邊形趨近于曲線(xiàn)曲面。利用NURBS節(jié)點(diǎn)插入技術(shù),我們可以實(shí)現(xiàn)NURBS的細(xì)分技術(shù)。通過(guò)NURBS的細(xì)分技術(shù),使設(shè)計(jì)人員實(shí)現(xiàn)復(fù)雜建模的需要。
2 NURBS曲線(xiàn)方程的有理分式表示
4 細(xì)分的相關(guān)知識(shí)及算法的實(shí)現(xiàn)
細(xì)分就是對(duì)一個(gè)初始的形狀描述數(shù)據(jù)進(jìn)行無(wú)限次遞歸的細(xì)化,使之達(dá)到產(chǎn)品設(shè)計(jì)人員的要求。但在實(shí)際的運(yùn)用中,進(jìn)行無(wú)限次數(shù)的細(xì)分是不現(xiàn)實(shí)。因此,人們通常是在細(xì)分網(wǎng)格的尺寸小于屏幕的分辨率時(shí),對(duì)于初始網(wǎng)格只執(zhí)行兩個(gè)細(xì)分,并且在檢測(cè)到兩個(gè)細(xì)分之后,將補(bǔ)丁的近誤差和平滑的數(shù)據(jù)用作初始調(diào)整的基礎(chǔ)。細(xì)分次數(shù)越多,效果越好,但計(jì)算量越大,光順效率越低。因此,這兩個(gè)細(xì)分是效率和效率之間的權(quán)衡[3]。
1)NURBS曲線(xiàn)插入一個(gè)節(jié)點(diǎn)
NURBS曲面新頂點(diǎn)位置和NURBS曲線(xiàn)的算法相同,分u向和v向分別計(jì)算即可。NURBS曲面中在同一位置重復(fù)插入同一節(jié)點(diǎn)的算法和NURBS曲線(xiàn)的也是一樣。
5 細(xì)分建模應(yīng)用
本文選擇應(yīng)用程序開(kāi)發(fā)工具實(shí)踐了一個(gè)簡(jiǎn)單的NURBS建模系統(tǒng)。主要完成導(dǎo)入圖片,針對(duì)圖中物體開(kāi)始描邊、獲取對(duì)應(yīng)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行細(xì)分建模構(gòu)成三維模型。本次使用了Qt平臺(tái)框架進(jìn)行程序的設(shè)計(jì)。Qt是一個(gè)界面的應(yīng)用程序框架,主要用于界面的設(shè)計(jì),具有便捷性可以直接拖動(dòng)控件進(jìn)行界面布局,同時(shí)也可以使用代碼進(jìn)行界面布局。MFC平臺(tái)框架涵蓋的東西較多,較為冗余,MFC是微軟框架,底層的代碼實(shí)現(xiàn)更加地適應(yīng)著Windows系統(tǒng),不具有跨平臺(tái)性。而Qt并不依附于某一個(gè)系統(tǒng),具有跨平臺(tái)性,而且Qt運(yùn)行效率比MFC好,Qt還實(shí)現(xiàn)了C++中不具有的仿射機(jī)制,其功能的實(shí)現(xiàn)主要是采用了元編譯器結(jié)合宏,加之Qt的信號(hào)的槽的機(jī)制,使其真正實(shí)現(xiàn)了組件式編程。
5.1 主界面
5.2 細(xì)分的效果
6 結(jié)束語(yǔ)
本文通過(guò)對(duì)NURBS建模技術(shù)的研究,實(shí)現(xiàn)了使用NURBS技術(shù)進(jìn)行三維建模,同時(shí)通過(guò)代碼建立了一個(gè)小型的NURBS建模系統(tǒng)。在完成NURBS曲面細(xì)分技術(shù)的研究之后,將其研究成果加入NURBS建模系統(tǒng)中,實(shí)現(xiàn)了NURBS節(jié)點(diǎn)插入細(xì)分算法,實(shí)現(xiàn)了NURBS曲面細(xì)分建模技術(shù)[5]。NURBS曲面采用的節(jié)點(diǎn)插入來(lái)進(jìn)行曲面細(xì)分,由于新的控制點(diǎn)總是整行、整列地加入曲面上,因此細(xì)分后的NURBS曲面不夠精細(xì)。為了解決NURBS曲面細(xì)分后不夠精細(xì)的問(wèn)題,提出了T樣條采用一種新的點(diǎn)樣條曲面(Point-based Splines)定義方式,曲面的結(jié)構(gòu)變得更加靈活,使樣條曲面真正的具有了局部細(xì)分的特性。該算法用于NURBS曲面模型的精簡(jiǎn)處理。
參考文獻(xiàn):
[1] 施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].2版.北京:高等教育出版社,2013.
[2] 于行洲,查紅彬,石青云.蝶形細(xì)分面片的光順[J].中國(guó)圖象圖形學(xué)報(bào)A輯,2003,8(3):299-305.
[3] 彭小新,唐月紅.自適應(yīng)T樣條曲面重建[J].中國(guó)圖象圖形學(xué)報(bào),2010,15(12):1818-1825.
[4] 薛翔.T樣條曲面造型技術(shù)的研究[D].南京:南京航空航天大學(xué),2014.
[5] 孔令德,康鳳娥.NURBS曲面細(xì)分建模技術(shù)的研究與實(shí)現(xiàn)[J].洛陽(yáng)師范學(xué)院學(xué)報(bào),2020,39(5):26-31.
【通聯(lián)編輯:謝媛媛】