欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

曲面網(wǎng)格化方法

文檔序號(hào):6615199閱讀:766來源:國知局
專利名稱:曲面網(wǎng)格化方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種曲面重建方法,尤其是關(guān)于一種曲面網(wǎng)格化方法。
背景技術(shù)
在產(chǎn)品的開發(fā)及制造過程中,幾何造型技術(shù)已使用得相當(dāng)廣泛,但是,由于種種原因, 仍有許多產(chǎn)品并非由CAD模型描述,設(shè)計(jì)和制造者面對(duì)的是實(shí)物樣件。為了適應(yīng)先進(jìn)制造技 術(shù)的發(fā)展,需要通過一定途徑,將這些實(shí)物轉(zhuǎn)化為CAD模型,使之能利用CAD、 CAM、 RPM、 PDM及CMIS先進(jìn)技術(shù)進(jìn)行處理或管理。目前,與這種從實(shí)物樣件獲取產(chǎn)品數(shù)學(xué)模型技術(shù)相關(guān) 的技術(shù),已發(fā)展成為CAD/CAM中的一個(gè)相對(duì)獨(dú)立的范疇,稱為"反求工程"(Reverse Engineering)。通過反求工程復(fù)現(xiàn)實(shí)物的CAD模型,簡稱模型重建。
目前較為成熟的模型重建技術(shù)是通過構(gòu)建曲面來實(shí)現(xiàn)的,在構(gòu)建曲面的過程中,根據(jù)實(shí) 物模型的坐標(biāo)測量數(shù)據(jù)構(gòu)建曲面、對(duì)曲面進(jìn)行三角網(wǎng)格化以逼近實(shí)物面在實(shí)踐中被廣泛應(yīng)用 。常用的曲面三角網(wǎng)格化方法有迭代法和迪式(Delaunay)算法,然而這兩種方法都存在不 足之處用迭代法直接算出曲面的控制點(diǎn),再根據(jù)控制點(diǎn)坐標(biāo)擬合三角形的速度非常慢,且 擬合出來的三角形大小不一致,速度和精度都不盡人意;用Dela皿ay算法所獲得的三角網(wǎng)格 比較規(guī)則,但Dela皿ay算法致力于提高剖分質(zhì)量,而導(dǎo)致剖分生成的三角面片的數(shù)量巨大, 所以速度緩慢。

發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種曲面網(wǎng)格化方法,能夠根據(jù)用戶實(shí)際需求快速生成均勻 的三角形網(wǎng)格曲面,提高曲面重建的速度和精度。
一種曲面網(wǎng)格化方法,該方法包括以下步驟(A)接收來自數(shù)據(jù)庫的曲面對(duì)象及用戶 設(shè)置的曲面網(wǎng)格化后曲面上的三角形網(wǎng)點(diǎn)數(shù)目;(B)根據(jù)曲面的面積及曲面網(wǎng)格化所需的 三角形網(wǎng)點(diǎn)數(shù)目計(jì)算劃分參數(shù)平面時(shí)水平方向及垂直方向的步長;(C)獲取曲面上的封閉 邊界曲線及各封閉邊界曲線的長度;(D)根據(jù)各封閉邊界曲線的長度及劃分參數(shù)平面時(shí)水 平方向及垂直方向的步長計(jì)算出曲面網(wǎng)格化時(shí)曲面上各封閉邊界曲線被分得的網(wǎng)點(diǎn)數(shù);(E )由各封閉邊界曲線的參數(shù)方程得到各被分得的網(wǎng)點(diǎn)的二維坐標(biāo)值;(F)將上述二維坐標(biāo) 值所對(duì)應(yīng)的參數(shù)平面內(nèi)的點(diǎn)用線段依次連接,得到與曲面上各封閉邊界曲線相應(yīng)的參數(shù)平面 內(nèi)的封閉邊界曲線,并根據(jù)劃分參數(shù)平面時(shí)水平方向及垂直方向的步長將參數(shù)平面內(nèi)最大封
閉邊界曲線的包圍盒用水平直線及垂直直線劃分成若干個(gè)小包圍盒;(G)獲取水平、垂直 直線與參數(shù)平面內(nèi)各封閉邊界曲線的交點(diǎn)、各封閉邊界曲線上的頂點(diǎn),以及各小包圍盒頂點(diǎn) 中落入相鄰封閉邊界曲線之間區(qū)域的點(diǎn),將所述交點(diǎn)及頂點(diǎn)加入相應(yīng)的小包圍盒內(nèi);(H) 將參數(shù)平面內(nèi)各小包圍盒內(nèi)的上述交點(diǎn)、頂點(diǎn)及各小包圍盒頂點(diǎn)中落入相鄰封閉邊界曲線之 間區(qū)域的點(diǎn)連接成三角形,并調(diào)整所有三角形的頂點(diǎn)順序?yàn)槟鏁r(shí)針;(I)根據(jù)曲面的參數(shù) 方程將所有三角形頂點(diǎn)的二維坐標(biāo)映射回三維空間曲面中的三維點(diǎn)坐標(biāo),并根據(jù)三角形的三 維點(diǎn)坐標(biāo)計(jì)算每個(gè)三角形所在平面的法向量;及(J)根據(jù)三角形信息,包括三角形頂點(diǎn)三 維坐標(biāo)、三角形頂點(diǎn)的連接方式、及各三角形所在平面的法向量輸出三角網(wǎng)格化后的曲面。
相較于現(xiàn)有技術(shù),本發(fā)明所提供的曲面網(wǎng)格化方法將曲面網(wǎng)格劃分問題轉(zhuǎn)化為對(duì)參數(shù)平 面的平面網(wǎng)格劃分問題,再通過映射將參數(shù)平面網(wǎng)格化得到的三角形轉(zhuǎn)化為三維空間的三角 形,曲面網(wǎng)格化得到的三角形分布均勻、數(shù)量可根據(jù)用戶實(shí)際需求靈活設(shè)定。


圖l是本發(fā)明曲面網(wǎng)格化方法較佳實(shí)施例的應(yīng)用環(huán)境圖。
圖2是本發(fā)明曲面網(wǎng)格化方法較佳實(shí)施例的主流程圖。
圖3是圖2中步驟S102的細(xì)化流程圖。
圖4是圖3中步驟S203的細(xì)化流程圖。
圖5是圖2中步驟S104的細(xì)化流程圖。
圖6是圖2中步驟S 106中獲取內(nèi)點(diǎn)的細(xì)化流程圖。
圖7是圖2中步驟S107的細(xì)化流程圖。
圖8是一個(gè)曲面對(duì)象的三維圖示。
圖9是圖8中曲面對(duì)象在參數(shù)平面中的相應(yīng)圖示,及執(zhí)行圖2中步驟S105劃分參數(shù)平面的 示意圖。
圖1 O是執(zhí)行圖2中步驟S 107得到的點(diǎn)的示意圖。
圖11是執(zhí)行圖5中步驟S303分割參數(shù)平面時(shí)各封閉邊界曲線分得的網(wǎng)點(diǎn)數(shù)的示意圖。 圖12和圖13舉例說明圖7中連接中間三角形和邊界三角形的步驟。 圖14是在參數(shù)平面內(nèi)生成邊界三角形的圖示。
圖15是在參數(shù)平面內(nèi)生成所有三角形包括邊界三角形和中間三角形的圖示,其中相較于 圖14多出的三角形為中間三角形。
圖16是圖15的參數(shù)平面內(nèi)生成所有三角形映射回三維空間后得到的網(wǎng)格化后均勻分布的 三角形的示意圖。
具體實(shí)施例方式
如圖1所示,是本發(fā)明曲面網(wǎng)格化方法較佳實(shí)施例的應(yīng)用環(huán)境圖。該應(yīng)用環(huán)境圖主要包 括數(shù)據(jù)庫IO、與數(shù)據(jù)庫10連接的計(jì)算機(jī)20以及與計(jì)算機(jī)20連接的顯示設(shè)備30。
數(shù)據(jù)庫10用于儲(chǔ)存曲面對(duì)象。每一個(gè)曲面對(duì)象包括該曲面的參數(shù)方程,從曲面參數(shù)方程 可得到曲面上三維點(diǎn)與參數(shù)平面中二維點(diǎn)的對(duì)應(yīng)關(guān)系,曲面的面積,曲面上封閉邊界曲線的 參數(shù)方程;由封閉邊界曲線的參數(shù)方程可以得到封閉邊界曲線的長度。于本實(shí)施例中,參數(shù) 平面的水平方向用U表示,垂直方向用V表示,U、 V的取值范圍為0-1。
計(jì)算機(jī)20用于接收來自數(shù)據(jù)庫10的曲面對(duì)象及用戶設(shè)置的曲面網(wǎng)格化后的三角形網(wǎng)點(diǎn)數(shù) 目并執(zhí)行曲面三角網(wǎng)格化程序200,將曲面網(wǎng)格劃分問題轉(zhuǎn)化為對(duì)參數(shù)平面的平面網(wǎng)格劃分 問題,再通過映射將參數(shù)平面網(wǎng)格化得到的三角形轉(zhuǎn)化為三維空間的三角形,得到均勻分布 的三角形網(wǎng)格曲面。
顯示設(shè)備30提供一顯示界面用于顯示三角網(wǎng)格化前的曲面及三角網(wǎng)格化后的曲面。 曲面三角網(wǎng)格化程序200包括接收模塊210、計(jì)算模塊220、獲取模塊230、網(wǎng)格化模塊 240及輸出模塊250。
接收模塊210用于接收來自數(shù)據(jù)庫10的曲面對(duì)象及用戶設(shè)置的曲面網(wǎng)格化后曲面上的三 角形網(wǎng)點(diǎn)數(shù)目。
計(jì)算模塊220用于根據(jù)曲面的參數(shù)方程計(jì)算曲面面積,并根據(jù)曲面的面積及曲面網(wǎng)格化 所需的三角形網(wǎng)點(diǎn)數(shù)目計(jì)算劃分參數(shù)平面時(shí)U方向及V方向的步長。
獲取模塊230用于獲取曲面上的封閉邊界曲線及各封閉邊界曲線的長度。
計(jì)算模塊220還用于根據(jù)封閉邊界曲線的參數(shù)方程計(jì)算封閉邊界曲線的長度,并根據(jù)各 封閉邊界曲線的長度及劃分參數(shù)平面時(shí)U方向及V方向的步長計(jì)算出曲面網(wǎng)格化時(shí)曲面上各封 閉邊界曲線被分得的網(wǎng)點(diǎn)數(shù)。
接下來,獲取模塊230由各封閉邊界曲線的參數(shù)方程得到各被分得的網(wǎng)點(diǎn)的二維UV坐標(biāo)值。
網(wǎng)格化模塊240用于將上述二維UV坐標(biāo)值所對(duì)應(yīng)的參數(shù)平面內(nèi)的點(diǎn)用線段依次連接,得 到與曲面上各封閉邊界曲線相應(yīng)的參數(shù)平面內(nèi)的封閉邊界曲線,并根據(jù)劃分參數(shù)平面時(shí)U方 向及V方向的步長將參數(shù)平面內(nèi)最大封閉邊界曲線的包圍盒用若干平行于U方向的直線(以下 簡稱U直線)及若干平行于V方向的直線(以下簡稱V直線)劃分成若干個(gè)小包圍盒。
接下來,獲取模塊230獲取U、 V直線與參數(shù)平面內(nèi)各封閉邊界曲線的交點(diǎn)、各邊界曲線 上的頂點(diǎn),以及各小包圍盒頂點(diǎn)中落入相鄰封閉邊界曲線間區(qū)域內(nèi)的點(diǎn)(以下簡稱內(nèi)點(diǎn))。
網(wǎng)格化模塊240將參數(shù)平面內(nèi)的上述交點(diǎn)、頂點(diǎn)及內(nèi)點(diǎn)連接成三角形,并調(diào)整所有三角 形的頂點(diǎn)連接順序?yàn)槟鏁r(shí)針。
計(jì)算模塊220根據(jù)曲面的參數(shù)方程將所有三角形頂點(diǎn)的二維UV坐標(biāo)映射回三維空間曲面 中的三維點(diǎn)坐標(biāo),并根據(jù)三角形的三維點(diǎn)坐標(biāo)計(jì)算每個(gè)三角形所在平面的法向量。
輸出模塊250根據(jù)三角形信息,包括三角形頂點(diǎn)三維坐標(biāo)、三角形頂點(diǎn)的連接順序、及 各三角形所在平面的法向量輸出三角網(wǎng)格化后的曲面。
如圖2所示,是本發(fā)明曲面網(wǎng)格化方法較佳實(shí)施例的主流程圖。首先,接收模塊210接收 用戶自數(shù)據(jù)庫10導(dǎo)入的一個(gè)曲面對(duì)象,該曲面對(duì)象包括該曲面的參數(shù)方程(步驟SIOO)。接 下來,接收模塊210接收用戶設(shè)置的曲面網(wǎng)格化所需的三角形網(wǎng)點(diǎn)數(shù)目(步驟SIOI)。計(jì)算 模塊220根據(jù)該曲面的面積和所設(shè)置的三角形網(wǎng)點(diǎn)數(shù)目計(jì)算分割參數(shù)平面時(shí)U方向及V方向的 步長(具體說明請(qǐng)參見圖3)(步驟S102)。獲取模塊230從曲面對(duì)象中獲取封閉邊界曲線( loops)的參數(shù)方程,計(jì)算模塊220根據(jù)該封閉邊界曲線的參數(shù)方程得到該封閉邊界曲線的長 度(步驟S103)。計(jì)算模塊220根據(jù)封閉邊界曲線的長度及上述U方向及V方向的步長中的較 小值計(jì)算出在曲面三角網(wǎng)格化過程中各封閉邊界曲線被分得的網(wǎng)點(diǎn)數(shù),并根據(jù)該封閉邊界曲 線的參數(shù)方程得到這些網(wǎng)點(diǎn)的二維UV坐標(biāo)(步驟S104)(具體介紹請(qǐng)參見圖5)。網(wǎng)格化模 塊240將在這些二維點(diǎn)用線段依次連接,得到參數(shù)平面中相應(yīng)的封閉邊界曲線(如圖9中的四 條封閉邊界曲線分別與圖8中三維空間中曲面的四條封閉邊界曲線對(duì)應(yīng)),并根據(jù)計(jì)算所得 步長,用U、 V直線將參數(shù)平面中最大封閉邊界曲線的包圍盒等分成若干個(gè)小包圍盒(步驟 S105)(如圖9所示)。獲取模塊230獲取U、 V直線與各封閉邊界曲線的交點(diǎn)(以下簡稱交點(diǎn) )、小包圍盒頂點(diǎn)中落入相鄰封閉邊界曲線間區(qū)域(如圖ll中的loopO, loopl, loop2, 1o叩3之間的區(qū)域)內(nèi)的點(diǎn)(以下簡稱內(nèi)點(diǎn))(具體介紹請(qǐng)參見圖6),以及封閉邊界曲線的 頂點(diǎn)(以下簡稱頂點(diǎn)),并將所述交點(diǎn)和頂點(diǎn)加入對(duì)應(yīng)的小包圍盒內(nèi),上述交點(diǎn)、內(nèi)點(diǎn)和頂 點(diǎn)稱作有效點(diǎn)(步驟S106)(如圖10所示)。網(wǎng)格化模塊240將參數(shù)平面中各小包圍盒內(nèi)的 上述有效點(diǎn)連接成三角形,并調(diào)整所有三角形頂點(diǎn)連接順序?yàn)轫槙r(shí)針(具體介紹請(qǐng)參見圖7 )(步驟S107)。計(jì)算模塊220根據(jù)曲面的參數(shù)方程將所有三角形頂點(diǎn)的二維UV坐標(biāo)映射回 三維空間曲面中的三維點(diǎn)坐標(biāo),并根據(jù)三角形的三維點(diǎn)坐標(biāo)計(jì)算每個(gè)三角形所在平面的法向 量(步驟S108)。輸出模塊250根據(jù)三角形信息,包括三角形頂點(diǎn)三維坐標(biāo)、三角形頂點(diǎn)的 連接順序、及各三角形所在平面的法向量輸出三角網(wǎng)格化后的曲面(步驟S109)。
如圖3所示,是圖2中步驟S102的細(xì)化流程圖。計(jì)算模塊220根據(jù)曲面的參數(shù)方程計(jì)算得 到曲面的面積Area (步驟S200)。計(jì)算模塊220根據(jù)曲面的面積及三角形網(wǎng)點(diǎn)數(shù)目N計(jì)算劃分
參數(shù)平面時(shí)U方向的理論步長Len. UO及V方向的理論步長Len. V0,
Len. U0=Len. V0=sqrt (Area/N)步驟S201 )。接收模塊210接收用戶所設(shè)置的劃分參數(shù)平面時(shí) U、 V方向的測試步長Len. test (步驟S202)。計(jì)算模塊220以所述測試步長Len. test為間 距分別沿U、 V方向取點(diǎn),得到U方向的點(diǎn)與V方向點(diǎn)各自所對(duì)應(yīng)的三維點(diǎn),并計(jì)算U方向兩點(diǎn) 間的距離與相應(yīng)三維點(diǎn)兩點(diǎn)間的距離的比例關(guān)系Ru及V方向兩點(diǎn)間的距離與相應(yīng)三維兩點(diǎn)間 點(diǎn)距離的比例關(guān)系Rv (步驟S203)(具體介紹請(qǐng)參見圖4)。計(jì)算模塊220根據(jù)所述U方向及V 方向的理論步長及相應(yīng)方向的比例關(guān)系計(jì)算劃分參數(shù)平面時(shí)U方向的實(shí)際步長Len. U及V方向 的實(shí)際步長Len. V, Len. U= Len.UO*Ru, Len. V=Len. VO*Rv (步驟S204)。
圖4以具體例子說明圖3中的步驟S203。首先,計(jì)算模塊220在參數(shù)平面中任意取一點(diǎn)A ( 步驟S2031)。接下來,計(jì)算模塊220以點(diǎn)A為基點(diǎn)沿U方向、V方向分別取測試步長Len. test的距離,得到第二點(diǎn)B及第三點(diǎn)C (步驟S2032)。計(jì)算模塊220根據(jù)點(diǎn)A、 B、 C在UV參數(shù) 平面的UV坐標(biāo)及曲面的參數(shù)方程計(jì)算得到點(diǎn)A、 B、 C所對(duì)應(yīng)的三維空間點(diǎn)A1、 Bl、 Cl的三維 坐標(biāo)(步驟S2033)。計(jì)算模塊220計(jì)算點(diǎn)A1、 B1的距離D1,點(diǎn)A1、 C1的距離D2 (步驟S2034 )。計(jì)算模塊220計(jì)算得到UV參數(shù)平面中U方向點(diǎn)A、 B之間的距離Len. test與A、 B點(diǎn)相應(yīng)的 三維空間點(diǎn)A1、 Bl之間的距離Dl的比例關(guān)系R『Len. test/Dl,同理計(jì)算得到Rv二 Len. test/D2 (步驟S2035)。本實(shí)施例以沿U方向、V方向各取一個(gè)點(diǎn)舉例說明UV參數(shù)平面中U方 向、V方向點(diǎn)與點(diǎn)間的距離與相應(yīng)三維空間點(diǎn)與三維空間點(diǎn)的距離的比例關(guān)系,沿U方向、V 方向取點(diǎn)越多,通過平均值法計(jì)算得到的比例關(guān)系更準(zhǔn)確,在此不再贅述。
如圖5所示,是圖2中步驟S104的細(xì)化流程圖。獲取模塊230根據(jù)曲面的參數(shù)方程得到曲 面上的封閉邊界曲線(loops)(步驟S301)。獲取模塊230獲取分割參數(shù)平面時(shí)U方向及V方 向的實(shí)際步長Len. U, Len. V中的較小值(如若Len. U〈Len. V則取Len. U),并根據(jù)該封 閉邊界曲線的參數(shù)方程得到該封閉邊界曲線的長度L (步驟S302)。計(jì)算模塊220根據(jù)各封閉 邊界曲線的長度L及所述較小值(如Len. U)計(jì)算得到曲面網(wǎng)格化時(shí)各封閉邊界曲線分得的 網(wǎng)點(diǎn)數(shù)n, n=L/Len. U (步驟S303)(如圖ll所示)。獲取模塊230根據(jù)各封閉邊界曲線的參 數(shù)方程得到該封閉邊界曲線分得的各網(wǎng)點(diǎn)的二維UV坐標(biāo)(步驟S304)。
如圖6所示,是圖2中步驟S106中獲取內(nèi)點(diǎn)的細(xì)化流程圖。獲取模塊230獲取參數(shù)平面中 的封閉邊界曲線(步驟S401)。獲取模塊230獲取一條U直線或V直線(步驟S402)。獲取模 塊230獲取該U直線或V直線與參數(shù)平面中封閉邊界曲線的第一個(gè)交點(diǎn)(步驟S403)。獲取模 塊230繼續(xù)沿U方向或V方向査找,得到該U直線或V直線與參數(shù)平面中封閉邊界曲線的第二個(gè) 交點(diǎn)(步驟S404)。獲取模塊230獲取第一個(gè)交點(diǎn)與第二個(gè)交點(diǎn)之間的U方向線段或V方向線
段上的小包圍盒的頂點(diǎn),該頂點(diǎn)即為內(nèi)點(diǎn)(步驟S405)。獲取模塊230繼續(xù)沿U方向或V方向 査找,判斷該U直線或V直線與參數(shù)平面中封閉邊界曲線是否還有新的交點(diǎn)(步驟S406)。若 有新的交點(diǎn),則獲取模塊230以該新的交點(diǎn)為第一個(gè)交點(diǎn)(步驟S407),重復(fù)步驟S404至步 驟S406。若無新的交點(diǎn),則獲取模塊230判斷是否還有U、 V直線未査找(步驟S408)。若還 有U、 V直線未査找,則返回步驟S402;若所有U、 V直線都査找完畢,則流程結(jié)束。
如圖7所示,是圖2中步驟S107的細(xì)化流程圖。獲取模塊230獲取參數(shù)平面內(nèi)的一個(gè)小包 圍盒(步驟S501)。獲取模塊230判斷該小包圍盒內(nèi)有效點(diǎn)中是否有交點(diǎn)和頂點(diǎn)(步驟S502 )。若該小包圍盒的有效點(diǎn)中無交點(diǎn)和頂點(diǎn),則該小包圍盒內(nèi)的有效點(diǎn)均為內(nèi)點(diǎn),即該小包 圍盒的四個(gè)頂點(diǎn)均落入相鄰封閉邊界曲線之間的區(qū)域,則網(wǎng)格化模塊240將該小包圍盒的四 個(gè)頂點(diǎn)按照逆時(shí)針順序連接成兩個(gè)三角形,如圖12中所示的小包圍盒box4的四個(gè)頂點(diǎn)P、 Q、 I、 O均落入曲面邊界內(nèi),則網(wǎng)格化模塊240將頂點(diǎn)P、 Q、 I、 O按照逆時(shí)針順序連接組成兩個(gè) 三角形OQP、 OIQ,如圖13所示(步驟S503),之后流程進(jìn)入步驟S512。
在步驟S502,若獲取模塊230判斷該小包圍盒內(nèi)有效點(diǎn)中有交點(diǎn)或/和頂點(diǎn),則獲取模塊 230依次査找該小包圍盒四條邊得到各邊上的有效點(diǎn),如圖12所示boxl的邊IJ、邊IB上無 交點(diǎn),邊BA上有交點(diǎn)E、 F,邊AJ上無交點(diǎn),boxl有邊界曲線落入該boxl內(nèi)的頂點(diǎn)M,則獲取 模塊230獲取點(diǎn)M、 E、 F; box2的邊AB上有交點(diǎn)F、 E,邊BC上無交點(diǎn),邊CD上有交點(diǎn)H、內(nèi)點(diǎn) D,邊DA上有內(nèi)點(diǎn)D、交點(diǎn)G,則獲取模塊230獲取點(diǎn)F、 E、 H、 D、 G; box3的邊DC上有內(nèi)點(diǎn)D、 交點(diǎn)H,邊CP上有交點(diǎn)N、內(nèi)點(diǎn)P、邊PO上有內(nèi)點(diǎn)P、 0、邊OD上有內(nèi)點(diǎn)D、 0,則獲取模塊230獲 取點(diǎn)D、 H、 N、 P、 0 (步驟S504)。
計(jì)算模塊220將各邊上的有效點(diǎn)按照査找時(shí)各有效點(diǎn)到該邊上出現(xiàn)的第一個(gè)小包圍盒頂 點(diǎn)的距離從小到大進(jìn)行排序,如査找boxl各邊時(shí)按照J(rèn)I、 IB、 BA、 AJ依次査找,有效點(diǎn)E、 F到邊BA出現(xiàn)的第一個(gè)頂點(diǎn)B的距離lBEl〈lBFl,則boxl內(nèi)有效點(diǎn)M、 E、 F的順序?yàn)镸、 E、 F; 按照與査找boxl各邊時(shí)同樣的査找順序,box2的邊AB上有效點(diǎn)F、 E到邊AB出現(xiàn)的的第一個(gè)頂 點(diǎn)A的距離IAFI 〈 IAE I ,邊CD上有效點(diǎn)H、 D到邊CD上出現(xiàn)的第一個(gè)頂點(diǎn)C的距離| CH | 〈 | CD | ,邊 DG上有效點(diǎn)D、 G到邊DG出現(xiàn)的第一個(gè)頂點(diǎn)D的距離0〈lDGl ,故box2內(nèi)有效點(diǎn)的排序順序?yàn)镕、 E、 H、 D、 G;同理得到box3內(nèi)有效點(diǎn)的排序順序?yàn)镈、 H、 N、 P、 0 (步驟S505)。
網(wǎng)格化模塊240將上述排序后的有效點(diǎn)按照排序順序連接成一個(gè)多邊形,如圖13所示, 連接boxl內(nèi)的有效點(diǎn)得到多邊形MEF,連接box2內(nèi)的有效點(diǎn)得到多邊形FEHDG,連接box3內(nèi)的 有效點(diǎn)得到多邊形DHNPO (步驟S506)。
獲取模塊230按照有效點(diǎn)的排序順序査找該多邊形的邊得到該多邊形的第一個(gè)最小內(nèi)角
,如依有效點(diǎn)的排序順序査找多邊形MEF各邊得到第一個(gè)最小內(nèi)角ZFME,循環(huán)多邊形FEHDG 各邊得到第一個(gè)最小內(nèi)角ZEHD,依有效點(diǎn)的排序順序査找多邊形D麗PO得到第一個(gè)最小內(nèi)角 ZNP0 (步驟S507)。網(wǎng)格化模塊240連接該多邊形相應(yīng)兩個(gè)頂點(diǎn)得到以該最小內(nèi)角為內(nèi)角的 一個(gè)邊界三角形,如圖13所示,連接多邊形MEF的頂點(diǎn)E、 F得到邊界三角形AMEF;連接多邊 形FEHDG的頂點(diǎn)E、 D得到三角形AEHD;連接多邊形DHNPO的頂點(diǎn)N、 O得到三角形ANPO (步驟 S508)。
網(wǎng)格化模塊240判斷除去該第一最小內(nèi)角的頂點(diǎn)后該多邊形剩余有效點(diǎn)是否組成多邊形 (步驟S509)。若剩余有效點(diǎn)不足以組成多邊形,如圖13所示,多邊形MEF除去頂點(diǎn)M僅剩下 有效點(diǎn)E、 F,兩個(gè)點(diǎn)E、 F不足以組成多邊形,則流程進(jìn)入步驟S512。
若剩余有效點(diǎn)可以組成多邊形,如圖13所示,多邊形FEHDG除去ZEHD的頂點(diǎn)H剩下有效 點(diǎn)E、 D、 G、 F,多邊形DHNPO除去ANPO的頂點(diǎn)P剩下有效點(diǎn)H、 N、 0、 D,則流程進(jìn)入步驟 S510,網(wǎng)格化模塊240判斷剩余有效點(diǎn)組成的多邊形是否為三角形,若不為三角形,如有效 點(diǎn)E、 D、 G、 F組成多邊形EDGF,有效點(diǎn)H、 N、 0、 D組成多邊形HNOD,則對(duì)該由剩余有效點(diǎn)組 成的多邊形自步驟S507開始重復(fù)直到剩下有效點(diǎn)組成的多邊形為三角形。
在步驟S510,若網(wǎng)格化模塊240判斷剩余有效點(diǎn)組成的多邊形為三角形,則網(wǎng)格化模塊 240調(diào)整該小包圍盒內(nèi)有效點(diǎn)組成的所有邊界三角形的頂點(diǎn)連接順序?yàn)槟鏁r(shí)針(步驟S511) 。接下來,網(wǎng)格化模塊240判斷是否參數(shù)平面內(nèi)的所有小包圍盒都査找完畢(步驟S512)。 若還有小包圍盒未査找完畢則對(duì)待査找的小包圍盒自步驟S501開始重復(fù)流程直到參數(shù)平面內(nèi) 的所有有效點(diǎn)都被連接成邊界三角形和中間三角形;若所有小包圍盒都査找完畢,則流程結(jié) 束。
如圖14是在參數(shù)平面內(nèi)生成邊界三角形的圖示,圖15是在參數(shù)平面內(nèi)生成所有三角形的 圖示,其中相較于圖14多出的三角形為依據(jù)圖7中步驟S503直接連接內(nèi)點(diǎn)組成的三角形;圖 16是圖15的參數(shù)平面內(nèi)生成所有三角形映射回三維空間后得到的網(wǎng)格化后均勻分布的三角形 的示意圖。
權(quán)利要求
權(quán)利要求1一種曲面網(wǎng)格化方法,其特征在于,該方法包括以下步驟(a)接收來自數(shù)據(jù)庫的曲面對(duì)象及用戶設(shè)置的曲面網(wǎng)格化所需的三角形網(wǎng)點(diǎn)數(shù)目,所述曲面對(duì)象包括曲面的參數(shù)方程及曲面上各封閉邊界曲線的參數(shù)方程;(b)根據(jù)曲面的參數(shù)方程計(jì)算曲面面積,并根據(jù)曲面面積及曲面網(wǎng)格化所需的三角形網(wǎng)點(diǎn)數(shù)目計(jì)算劃分參數(shù)平面時(shí)水平方向及垂直方向的實(shí)際步長;(c)根據(jù)各封閉邊界曲線的參數(shù)方程計(jì)算得到曲面上各封閉邊界曲線的長度;(d)根據(jù)曲面上各封閉邊界曲線的長度及劃分參數(shù)平面時(shí)水平方向及垂直方向的步長計(jì)算出曲面網(wǎng)格化時(shí)曲面上各封閉邊界曲線被分得的網(wǎng)點(diǎn)數(shù);(e)由各封閉邊界曲線的參數(shù)方程得到曲面上各封閉邊界曲線被分得的網(wǎng)點(diǎn)的二維坐標(biāo)值;(f)將上述二維坐標(biāo)值所對(duì)應(yīng)的參數(shù)平面內(nèi)的點(diǎn)用線段依次連接,得到與曲面上各封閉邊界曲線相應(yīng)的參數(shù)平面內(nèi)的封閉邊界曲線,并根據(jù)劃分參數(shù)平面時(shí)水平方向及垂直方向的步長將參數(shù)平面內(nèi)最大封閉邊界曲線的包圍盒用若干水平直線及若干垂直直線劃分成若干個(gè)小包圍盒;(g)獲取所述若干水平、垂直直線與參數(shù)平面內(nèi)各封閉邊界曲線的交點(diǎn)、各封閉邊界曲線上的頂點(diǎn),以及各小包圍盒頂點(diǎn)中落入?yún)?shù)平面內(nèi)相鄰封閉邊界曲線之間區(qū)域的點(diǎn),并將所述交點(diǎn)及頂點(diǎn)加入相應(yīng)的小包圍盒內(nèi);(h)將參數(shù)平面內(nèi)各小包圍盒內(nèi)的上述交點(diǎn)、頂點(diǎn)及各小包圍盒頂點(diǎn)中落入?yún)?shù)平面內(nèi)相鄰封閉邊界曲線之間區(qū)域的點(diǎn)連接成三角形,并調(diào)整所有三角形的頂點(diǎn)連接順序?yàn)槟鏁r(shí)針;(i)根據(jù)曲面的參數(shù)方程將所有三角形頂點(diǎn)的二維坐標(biāo)映射回曲面中的三維點(diǎn)坐標(biāo),并根據(jù)三角形的三維點(diǎn)坐標(biāo)計(jì)算每個(gè)三角形所在平面的法向量;及(j)根據(jù)各三角形頂點(diǎn)的三維坐標(biāo)、各三角形頂點(diǎn)的連接順序及各三角形所在平面的法向量,輸出三角網(wǎng)格化后的曲面。
2.如權(quán)利要求l所述的曲面網(wǎng)格化方法,其特征在于,其中步驟(b )包括以下步驟根據(jù)曲面面積及三角形網(wǎng)點(diǎn)數(shù)目計(jì)算劃分參數(shù)平面時(shí)水平方向及垂直方向的理論步長 接收用戶設(shè)置的劃分參數(shù)平面的測試步長;根據(jù)所述理論步長及測試步長計(jì)算參數(shù)平面內(nèi)水平方向兩點(diǎn)之間距離與相應(yīng)兩三維點(diǎn) 之間距離的比例關(guān)系、垂直方向兩點(diǎn)之間距離與相應(yīng)兩三維點(diǎn)之間距離的比例關(guān)系;及根據(jù)所述理論步長及所述比例關(guān)系分別計(jì)算劃分參數(shù)平面時(shí)水平方向及垂直方向的實(shí) 際步長。
3.如權(quán)利要求2所述的曲面網(wǎng)格化方法,其特征在于,其中步驟(d )包括以下步驟獲取劃分參數(shù)平面時(shí)水平方向及垂直方向的實(shí)際步長中的較小值;及 根據(jù)曲面上各封閉邊界曲線的長度及所述較小值計(jì)算曲面網(wǎng)格化時(shí)曲面上各封閉邊界曲線被分得的網(wǎng)點(diǎn)數(shù)。
4.如權(quán)利要求l所述的曲面網(wǎng)格化方法,其特征在于,其中步驟(g)中獲取各小包圍盒頂點(diǎn)中落入?yún)?shù)平面內(nèi)相鄰封閉邊界曲線之間區(qū)域的點(diǎn)包括以下步驟 獲取一條水平直線或垂直直線;獲取該水平直線或垂直直線與參數(shù)平面內(nèi)封閉邊界曲線的第一個(gè)交點(diǎn); 繼續(xù)沿水平方向或垂直方向査找得到該水平直線或垂直直線與所述參數(shù)平面內(nèi)封閉邊界曲線的第二個(gè)交點(diǎn);獲取第一個(gè)交點(diǎn)與第二個(gè)交點(diǎn)之間的線段上的小包圍盒的頂點(diǎn); 判斷該水平直線或垂直直線與所述參數(shù)平面內(nèi)封閉邊界曲線是否還有新的交點(diǎn); 若有新的交點(diǎn),則以該新的交點(diǎn)為第一個(gè)交點(diǎn),返回査找該水平直線或垂直直線與所述參數(shù)平面內(nèi)封閉邊界曲線的第二個(gè)交點(diǎn)的步驟;若無新的交點(diǎn),則判斷參數(shù)平面內(nèi)是否還有其它水平直線或垂直直線未査找;及 若還有未査找的水平直線或垂直直線,則返回獲取水平直線或垂直直線的步驟。
5.如權(quán)利要求l所述的曲面網(wǎng)格化方法,其特征在于,其中步驟(h)包括以下步驟(hl)獲取參數(shù)平面內(nèi)的一個(gè)小包圍盒;(h2)判斷該小包圍盒中是否有水平、垂直直線與參數(shù)平面內(nèi)封閉邊界曲線的交點(diǎn)或 參數(shù)平面內(nèi)封閉邊界曲線上的頂點(diǎn);(h3)若該小包圍盒內(nèi)無水平、垂直直線與參數(shù)平面內(nèi)封閉邊界曲線的交點(diǎn)及參數(shù)平 面內(nèi)封閉邊界曲線上的頂點(diǎn),則將該小包圍盒落入?yún)?shù)平面內(nèi)相鄰封閉邊界曲線之間區(qū)域的 四個(gè)頂點(diǎn)按照逆時(shí)針順序連接成兩個(gè)三角形;(h4)判斷參數(shù)平面內(nèi)的小包圍盒是否都査找完畢;(h5)若還有小包圍盒未査找則返回獲取小包圍盒的步驟。
6.如權(quán)利要求5所述的曲面網(wǎng)格化方法,其特征在于,在步驟(h2 )若判斷該小包圍盒內(nèi)有效點(diǎn)中有水平、垂直直線與封閉邊界曲線的交點(diǎn)或封閉邊界曲線上 的頂點(diǎn),則執(zhí)行以下步驟(kl)査找該小包圍盒的四條邊得到各邊上的水平、垂直直線與封閉邊界曲線的交點(diǎn) 、該小包圍盒落入封閉邊界曲線邊界內(nèi)區(qū)域的頂點(diǎn)及封閉邊界曲線上的頂點(diǎn);(k2)將各邊上的上述水平、垂直直線與封閉邊界曲線的交點(diǎn)、該小包圍盒落入封閉 邊界曲線邊界內(nèi)區(qū)域的頂點(diǎn)及封閉邊界曲線上的頂點(diǎn)按照査找時(shí)各點(diǎn)到該邊上出現(xiàn)的第一個(gè) 小包圍盒頂點(diǎn)的距離從小到大的順序進(jìn)行排序;(k3)將該小包圍盒內(nèi)的上述水平、垂直直線與封閉邊界曲線的交點(diǎn)、該小包圍盒落 入封閉邊界曲線邊界內(nèi)區(qū)域的頂點(diǎn)及封閉邊界曲線上的頂點(diǎn)按照排序順序連接成一個(gè)多邊形(k4)按照排序順序査找該多邊形的邊,得到該多邊形的第一個(gè)最小內(nèi)角; (k5 )連接多邊形相應(yīng)兩個(gè)頂點(diǎn)得到以該第一個(gè)最小內(nèi)角為內(nèi)角的一個(gè)三角形; (k6)判斷該多邊形除去該第一個(gè)最小內(nèi)角的頂點(diǎn)后,剩余的頂點(diǎn)是否組成一個(gè)多邊形;(k7)若該多邊形剩余的頂點(diǎn)不足以組成一個(gè)多邊形,則判斷是否所有小包圍盒都査 找完畢;(k8)若還有小包圍盒未査找完畢,則返回獲取小包盒的步驟。
7.如權(quán)利要求6所述的曲面網(wǎng)格化方法,其特征在于,在步驟(k6 )若判斷得到該多邊形除去該第一個(gè)最小內(nèi)角的頂點(diǎn)后,剩余的頂點(diǎn)組成一個(gè)多邊形,則執(zhí) 行以下步驟(ml )判斷該多邊形剩余頂點(diǎn)組成的多邊形是否為一個(gè)三角形;(m2)若該多邊形剩余頂點(diǎn)組成的多邊形為一個(gè)三角形,則調(diào)整該包圍盒內(nèi)水平、垂 直直線與封閉邊界曲線的交點(diǎn)、該小包圍盒落入封閉邊界曲線邊界內(nèi)區(qū)域的頂點(diǎn)及封閉邊界 曲線上的頂點(diǎn)組成的所有三角形的頂點(diǎn)連接順序?yàn)槟鏁r(shí)針;及 (m3)進(jìn)入判斷是否所有小包圍盒都査找完畢的步驟。
8.如權(quán)利要求7所述的曲面網(wǎng)格化方法,其特征在于,在步驟(ml )若判斷得到該多邊形剩余頂點(diǎn)組成的多邊形不為一個(gè)三角形,則返回步驟(k4)。
全文摘要
本發(fā)明提供一種曲面網(wǎng)格化方法。該方法將曲面網(wǎng)格劃分問題轉(zhuǎn)化為對(duì)參數(shù)平面的平面網(wǎng)格劃分問題,再通過映射將參數(shù)平面網(wǎng)格化得到的三角形轉(zhuǎn)化為三維空間的三角形,曲面網(wǎng)格化得到的三角形分布均勻、數(shù)量可根據(jù)用戶實(shí)際需求靈活設(shè)定。
文檔編號(hào)G06T11/00GK101383047SQ200710201590
公開日2009年3月11日 申請(qǐng)日期2007年9月3日 優(yōu)先權(quán)日2007年9月3日
發(fā)明者吳新元, 張旨光, 敏 王 申請(qǐng)人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
曲麻莱县| 台中县| 监利县| 嫩江县| 修文县| 潮州市| 新建县| 健康| 通山县| 泽普县| 军事| 宿迁市| 永川市| 霍林郭勒市| 同心县| 越西县| 马山县| 连城县| 南京市| 龙泉市| 五寨县| 观塘区| 红河县| 东乌珠穆沁旗| 阳曲县| 修文县| 姚安县| 迁西县| 泰宁县| 海南省| 鸡东县| 柘城县| 阿坝县| 双桥区| 河西区| 渭南市| 达州市| 航空| 乾安县| 清涧县| 玛沁县|