一種平面向量場的四邊形網格化方法
【專利摘要】本發(fā)明公開一種平面向量場的四邊形網格化方法,其主要步驟為:輸入一個平面向量場F,確定對F進行網格化處理的平面區(qū)域Ω,以及一組過程控制參數(shù);對覆蓋區(qū)域Ω的擴展矩形包圍盒進行柵格化處理;根據(jù)流場及控制參數(shù),分別生成向量場F及其正交對偶向量場G的流線集合;求出各柵格單元中F的流線與G的流線的交點,并將所得到的交點分別插入到相關流線上的相應位置;提取由交點和流線交織成的平面網格的面片;對網格中的非四邊形網格面片進行剖分,生成四邊形單元占優(yōu)的網格;通過網格細分產生平面四邊形網格。本發(fā)明能夠實現(xiàn)任意平面向量場的四邊形網格化,其原理簡單,易于實現(xiàn),能夠自動生成面片大小較為均勻的四邊形網格。
【專利說明】一種平面向量場的四邊形網格化方法
【技術領域】
[0001] 本發(fā)明公開一種平面向量場的四邊形網格化方法,相關內容屬于計算機圖形技術 領域,內容涉及數(shù)字化流場的可視化方法,尤其涉及一種平面向量場的四邊形網格化方法。
【背景技術】
[0002] 目前,與本發(fā)明相關的技術主要有兩方面:
[0003] (1)圖像的網格化技術:隨著圖像處理技術的發(fā)展,很多數(shù)字圖像處理算法需要 將圖像轉化為三角網格進行后繼處理?,F(xiàn)有技術公開了幾種圖像的三角網格表示方法。如 DDTs(數(shù)據(jù)依賴三角形剖分)方法(參見:P.Li等,Atunedmesh-generationstrategy forimagerepresentationbasedondata-dependenttriangulation,IEEETransaction onImageProcessing,2013, 22(5) : 2004-2018),該方法根據(jù)一個能夠隱式偵測圖像邊緣 細節(jié)的成本函數(shù)來產生一組三角形來剖分圖像,在后繼處理中利用這組三角形來替換原輸 入圖像。該技術針對規(guī)則圖像而非平面向量場進行網格化,最終輸出的結果為三角形平面 網格而非四邊形平面網格。
[0004] (2)幾何模型網格化技術:利用掃描設備可以獲得表示物體表面形狀的采 樣點數(shù)據(jù)(點云),根據(jù)這些數(shù)據(jù)對曲面進行重構,能夠重建描述物體形狀的數(shù)字 化幾何模型。目前,已有多種曲面重構方法。如Mencl重構方法(參見:R.Mencl 等,agraph-basedapproachtosurfacereconstruction,ComputerGraphics Forum, 1995, 14(3) :467-468),該方法是一種基于面片生成過程的方法,通過計算點云的歐 幾里得最小生成樹,得到一個曲面描述圖,然后在曲面描述圖的基礎上,通過填充三角形得 到重構曲面網格。該技術最終用三角形面片而非四邊形面片來逼近物體的形狀。
[0005] 目前,尚未見到針對平面向量場進行四邊形網格化處理的文獻。
【發(fā)明內容】
[0006] 本發(fā)明給出一種平面向量場的四邊形網格化方法,該方法可根據(jù)一組控制參數(shù)自 動生成不同密度且分布均勻的流線,進而生成面片大小較為均勻的平面四邊形網格。
[0007] 為了敘述方便,對相關的概念、符號做如下說明:
[0008] 1.平面向量場F=f(X,y)及對F進行網格化處理范圍-平面區(qū)域Q。對于任 意一點P= (X,y)GQ,可由F=f(X,y)得到p點處的向量場值f(p)。
[0009] 2.網格生成過程的相關控制參數(shù):
[0010] 步長參數(shù)h:在生成流線的過程中,用于控制流線每次向前行進的距離;
[0011] 密度控制參數(shù)ds :用于控制兩條相鄰流線之間的最近距離;
[0012] 終止控制參數(shù)d6 :用于判定一條流線的生長過程是否終止。
[0013] 本發(fā)明公開一種平面向量場的四邊形網格化方法,其步驟如下:
[0014] 1.輸入平面向量場及網格化控制參數(shù):輸入給定的平面向量場F=f(x,y),以及 對向量場F進行網格化處理的平面區(qū)域Q;確定網格化控制參數(shù):平面向量場流線的生長 步長參數(shù)h、流線的密度控制參數(shù)ds、終止單條流線生長的控制參數(shù)4等,并使h> 4 ;
[0015] 求區(qū)域Q的各邊均平行于坐標軸的矩形包圍盒?,并適當放大?,記之為2;
[0016] 2.建立平面矩形區(qū)域I:的柵格剖分結構:沿X軸和Y軸方向分別等分2,在區(qū)域 2內形成柵格結構,將平面矩形區(qū)域2分割成具有mXn個柵格單元的柵格結構;
[0017] 3.生成向量場F的流線:任選一采樣點StlU,y)GQ,計算其場值f(Sci),從Sci沿 F(Stl)方向前進h距離,得到采樣點S1 ;計算S1的場值If(S1),從S1沿f(S1)方向前進h距 離,得到新采樣點S2的位置,……,如此重復,直到或者其與已有采樣點的最小距離 小于或者等于d6為止;
[0018] 返回到s。,并沿f(S(1)的反方向前進h距離,得到新點的位置,……,如 此重復,直到或者其與已有采樣點的最小距離小于或者等于de為止;
[0019]最后,將有序采樣點列A,s_2, s_i,S(l,S1, S2,A所定義的折線視為流線,并將該采 樣點列放入到F的流線集合中,將各采樣點Si及相應流線均記入所對應的各柵格結構單元 中,同時將Si放入備選點序列A中;
[0020] 若備選點序列A非空,貝U從A中摘除一點p,以p為起點,在與p的場值f(p)正交 的方向上取與P距離為ds的新的起始點Pl,p2;判斷是否滿足P1eQ且?1與已有采樣點 的最小距離大于若滿足條件,則以該點為初始點生成流線,對于點p2進行同樣的操作;
[0021] 重復摘除A中的點,產生新的流線,直到A為空為止;
[0022] 4.生成F的正交對偶向量場G的流線:定義F的正交對偶向量場G=g(x,y),采 用與步驟3相同的方法生成G的流線,并將每一條流線的有序采樣點列存入向量場G的流 線集合中,同時將采樣點及相應流線均記入該采樣點所對應的各柵格結構單元中;
[0023] 5.計算F的流線與G的流線的交點:對每個柵格單元C,從其內已注冊的F的流 線If上任選兩個相繼的點Pi,pi+1 (其中至少有一個點在該單元內),從其內已注冊的G的流 線Is上任選兩個相繼的點q」,qj+1 (其中至少有一個點在該單元內),判斷線段piPi+1與線段 qjqj+1是否有交點;若有交點,則將交點分別插入到1F和Is上的相應位置處;
[0024]6.提取四邊形占優(yōu)網格的頂點和邊:刪除各條流線上的采樣點,換之于用流線上 的交點來表示各條流線,并刪除少于兩個交點的退化流線及與之相關的交點;將F的所有 流線上的交點放入頂點集合中;將F和G的每條流線上的任意兩個相繼交點所定義的線段, 作為備選邊,放入備選邊集合中;
[0025] 7.生成四邊形占優(yōu)網格的面片:遍歷備選邊集合中的各邊,識別由F和G的各條 流線交織而成的格網結構中的多邊形面片,其具體步驟為:
[0026]7. 1首先確定以下A)或B)之一作為面片提取過程中的邊搜索"前進規(guī)則":
[0027] A) "向左轉"最優(yōu)先,"直行"次優(yōu)先,"向右轉"最不優(yōu)先;
[0028] B)"向右轉"最優(yōu)先,"直行"次優(yōu)先,"向左轉"最不優(yōu)先;
[0029] 7. 2為備選邊集合中的所有邊設置一個計數(shù)變量,并將各計數(shù)變量的值初始化為 〇 ;
[0030] 7. 3遍歷備選邊集中的每條邊e,并執(zhí)行如下判斷與操作:
[0031] 1)若e的計數(shù)為2,則不處理該邊;
[0032]2)若e的計數(shù)小于2,則使之增1,并設該邊的頂點(即交點)分別為P1和p2 ;這 時欲提取面片的第一條邊是由點P1到達點P2的邊;而后根據(jù)"前進規(guī)則"所約定的順序判 斷由點P2 "向左轉"到達點P4,還是"直行"到達點IV或是"向右轉"到達點P5 ;在依據(jù)"前 進規(guī)則"依次判定前進方向的過程中,若往最優(yōu)先方向前進的交點不存在,則向次優(yōu)先方向 前進,若次優(yōu)先方向的交點也不存在,則向最不優(yōu)先方向前進;
[0033] 3)設上述前進過程到達的新交點為p,把新邊p2p視為上述邊e,重復上面的前進 過程,直至所經歷的頂點再次出現(xiàn)點P1為止;這時,用所經歷的頂點序列定義一個平面簡單 多邊形區(qū)域,其即為所要提取的多邊形面片;
[0034] 當面片被提取后,判斷其是否為非四邊形網格面片;若是非四邊形網格面片,則 對其進行四邊形化剖分處理,生成以四邊形網格面為主的平面網格,稱之為四邊形占優(yōu)網 格;
[0035] 8.生成二維向量場的平面四邊形網格:對于四邊形占優(yōu)網格的每條邊,計算出它 的中點;對于每個面片,計算其重心,并將該重心與其各邊中點相連接,生成平面四邊形網 格。
[0036] 本發(fā)明方法具有如下優(yōu)點:
[0037] 1.在繪制流線的過程中,通過參數(shù)來控制流線的密度,可以生成較為均勻的流線, 由此生成的四邊形網格面的大小也較為均勻。
[0038] 2.在流線生長過程中,判斷一個采樣點是否有效時,只需查找與當前采樣點所在 的柵格單元相鄰的單元中的采樣點,進而計算這些采樣點與當前采樣點之間的距離。可以 減少計算量,提高算法的效率。
[0039] 3.具有自適應性,用戶只需輸入適當參數(shù)的值,就可以生成不同密度的網格。
[0040] 4.本發(fā)明能夠實現(xiàn)任意平面向量場的四邊形網格化,其原理簡單,易于實現(xiàn),能夠 自動生成面片大小較為均勻的四邊形網格。
【專利附圖】
【附圖說明】
[0041] 圖1為本發(fā)明方法的流程圖;
[0042] 圖2為向量場進行網格化處理的平面區(qū)域:a圖為不規(guī)則區(qū)域及其包圍盒,b圖為 任意擺放的矩形及其包圍盒,c圖為各邊平行于坐標軸向的矩形及其包圍盒;
[0043] 圖3為柵格單元的標記方法;
[0044] 圖4為以Stl為初始點生成的一條流線;
[0045] 圖5為兩個新的初始點;
[0046] 圖6a和圖6b分別為F和G的流線;
[0047] 圖7為不同密度的F和G的流線,a圖中,dsep = 0.015 ;b圖中,dsep = 0.02 ;c圖 中,dsep = 0? 03 ;
[0048] 圖8為F的流線和G的流線的交點;
[0049] 圖9為以p2為端點的四條邊;
[0050] 圖10為四邊形占優(yōu)平面網格的一個多邊形面片;
[0051] 圖11為一個多邊形面片的剖分過程;
[0052] 圖12為剖分處理后得到的四邊形占優(yōu)的平面網格;
[0053]圖13為四邊形占優(yōu)平面網格的細分過程。
【具體實施方式】
[0054] 為了更清楚地闡明本發(fā)明的技術方案,下面結合具體的實施例和相關附圖,對本 發(fā)明的技術細節(jié)進行詳細說明。
[0055] 本實施例涉及的主要數(shù)據(jù)結構為:
[0056] 1.有序采樣點雙向鏈表L:存儲用于定義一條流場流線的有序采樣點序列: A,s_2,S-DSq,S11s2,A。
[0057] 2.流線集合Lf和Lt=:分別用于存儲向量場F及其正交對偶向量場G的流線,即Lf 或Lt=中的元素均為不同長度的雙向鏈表L。
[0058] 3.備選點隊列A:用于存儲當前已有流線的某些采樣點,這些采樣點可潛在地用 于生成下一條新流線。
[0059] 4.頂點集合V:用于存儲潛在四邊形網格的頂點。
[0060] 5.邊集合E:用于存儲潛在四邊形網格的邊(備選邊)。
[0061] 6.面片集合Sf :用于存儲潛在四邊形網格的面。
[0062] 本實施例的具體步驟(參見附圖1)如下:
[0063] 1.輸入平面向量場及網格化控制參數(shù)
[0064]輸入給定的平面向量場F=f(x,y),以及對向量場F進行網格化處理的平面區(qū)域 Q;輸入網格化控制參數(shù):平面向量場流線的生長步長h、流線的密度控制參數(shù)ds、終止單 條流線生長的控制參數(shù)de等。本實施例中,取參數(shù)h= 0. 05、ds = 0. 02、de = 0. 01。
[0065] 求區(qū)域Q的各邊均平行于坐標軸的矩形包圍盒?。不同平面區(qū)域的包圍盒如附 圖2所示。本實施例中,取平面區(qū)域為Q= [Xci,yjX[X1,yj(Xci <X1,Ytl <Y1),顯然其包 圍為其自身,即 ?Q= [XwycJXlixpyJ。
[0066] 保持包圍盒?的中心不變,按X軸和Y軸正負方向少許放大?,放大后的包圍盒 記為2 = [XfAjfAlXh+Aji+A]。本實例中,取A為?最大邊長的1/100。 [0067] 2.建立平面矩形區(qū)域2的柵格剖分結構
[0068] 沿X軸和Y軸方向分別等分平面區(qū)域2,形成大小為mXn的柵格結構,其將區(qū)域 2剖分為一系列小的矩形柵格單元,其中每個柵格單元的大小均為AxXAy。
[0069] 分別沿X軸和Y軸對柵格單元進行編號,每個柵格單元均由兩個序號表示,如:X軸方向第i個、Y軸方向第j個單元可表示為Cij (參見附圖3)。
[0070]對于平面上的任意一點(X,y),由下式
[0071]
[0072] 可確定它位于柵格單元Cab內,其中L
【權利要求】
1. 一種平面向量場的四邊形網格化方法,其特征在于,具體步驟如下: a. 輸入平面向量場及網格化控制參數(shù):輸入一個平面向量場F、對向量場F進行網格 化處理的平面區(qū)域Ω、以及網格化控制參數(shù);求區(qū)域Ω的各邊均平行于坐標軸的矩形包圍 盒,并將其適當放大,記之為Σ ; b. 建立平面矩形區(qū)域Σ的柵格剖分結構:沿X軸和Y軸方向分別等分Σ,在區(qū)域Σ 內形成柵格結構; c. 生成向量場F的流線:根據(jù)輸入的網格化控制參數(shù),對向量場F進行采樣,并用有序 采樣點定義的折線來逼近向量場F的流線;將表示流線的有序采樣點列存入向量場F的流 線集合中,將各采樣點注冊到其所在的柵格結構單元中,同時將流線也分別注冊到其采樣 點所在的各柵格結構單元中; d. 生成向量場F的正交對偶向量場G的流線:定義F的正交對偶向量場G ;生成G的流 線,將流線的有序采樣點列存入G的流線集合中,將各采樣點注冊到其所在的柵格結構單 元中,同時將流線也分別注冊到其采樣點所在的各柵格結構單元中; e. 計算向量場F的流線與向量場G的流線的交點:在每個柵格單元內,判斷其內已注 冊的向量場F的流線和向量場G的流線是否存在交點;若存在交點,則求出該交點,并將其 插入到相關流線的相應位置; f. 提取四邊形占優(yōu)網格的頂點和邊:刪除每條流線上的采樣點,換之于用流線上的交 點來表示每一條流線,并刪除少于兩個交點的退化流線及與其相關的交點;將向量場F的 所有流線上的交點放入頂點集合中;將向量場F和向量場G的每一條流線上任意兩個相繼 交點所定義的線段,作為備選邊,放入備選邊集合中; g. 生成四邊形占優(yōu)網格的面片:遍歷備選邊集合中的各邊,識別由向量場F和向量場G 的各條流線交織而成的格網結構中的多邊形面片;對非四邊形網格面進行剖分,生成以四 邊形面片為主的平面網格,稱之為四邊形占優(yōu)網格; h. 生成二維向量場的平面四邊形網格:對于四邊形占優(yōu)網格的每條邊,計算出它的中 點;對于每個面片,計算其重心,并將其重心與其各邊中點相連接,生成平面四邊形網格。
2. 根據(jù)權利要求1所述的一種平面向量場的四邊形網格化方法,其特征在于,所述步 驟g中的多邊形面片提取方法包括如下具體步驟: (1) 確定以下A或B之一作為面片提取過程中的邊搜索"前進規(guī)則": A. "向左轉"最優(yōu)先,"直行"次優(yōu)先,"向右轉"最不優(yōu)先; B. "向右轉"最優(yōu)先,"直行"次優(yōu)先,"向左轉"最不優(yōu)先; (2) 為備選邊集合中的每條邊設置一個計數(shù)變量,并將各計數(shù)變量的值初始化為O ; (3) 遍歷備選邊集合中的各條邊e,并執(zhí)行如下判斷與操作: 1) 若e的計數(shù)為2,則不處理該邊; 2) 若e的計數(shù)小于2,則使之增1,并設該邊的頂點,即交點,分別為P1和p2 ;這時欲提 取面片的第一條邊為由點P1到達點P2的邊,而后根據(jù)"前進規(guī)則"所約定的順序判斷由點 P2 "向左轉"到達點P4,還是"直行"到達點P3,或是"向右轉"到達點P5 ;在依據(jù)"前進規(guī)則" 依次判定前進方向的過程中,若往最優(yōu)先方向前進的頂點不存在,則向次優(yōu)先方向前進,若 次優(yōu)先方向的頂點也不存在,則向最不優(yōu)先方向前進; 3) 設上述前進過程到達的新頂點為p,把新邊p2p視為上述邊e,重復上面的前進過程, 直至所經歷的頂點再次出現(xiàn)點P1為止;這時,用所經歷的頂點序列定義一個平面簡單多邊 形區(qū)域,其即為所要提取的多邊形面片。
【文檔編號】G06T11/00GK104318594SQ201410551172
【公開日】2015年1月28日 申請日期:2014年10月16日 優(yōu)先權日:2014年10月16日
【發(fā)明者】董曉芬, 龐明勇 申請人:南京師范大學