當前位置:首頁 » 操作系統 » 空間曲面演算法

空間曲面演算法

發布時間: 2022-11-28 04:59:25

『壹』 曲面生成和交叉處理

一、曲面生成

空間曲面存儲在一個曲面文件中,該文件的結構如表4-10所示。一個空間曲面由多個曲面片組合而成,所以生成空間曲面之前首先要生成空間曲面片。空間曲面片由兩閉合曲線或兩條非閉合曲線連接而成。生成實體表面的方法有很多,如遺傳演算法、模擬退火法和插值演算法等。其中遺傳演算法和模擬退火法基於圖論的原理來完成曲面生成任務。本系統中採用了遺傳演算法來生成曲面片,曲面和曲面片用非規則三角網TIN(triangle irregurlar network)來表示。

表4-10 曲面文件

續表

1.遺傳演算法的基本原理

遺傳演算法(genetic algorithm)簡稱GA,它是建立在自然選擇和群體遺傳學機理基礎上的隨機迭代和進化,是具有廣泛適用性的搜索方法。在遺傳演算法中,所有的自然種類適應環境而得以生存,這一自然適應性是GA的主旋律。GA搜索結合了達爾文適者生存和隨機信息交換,前者消除了各種不適應因素,後者利用了原有解中已有的認識,從而加快了搜索過程。下面說明基本方法。

對於一個給定的優化問題,設定目標函數:

F=f(x,y,z),(x,y,z)∈Ω,F∈R

求空間點(x0,y0,z0)使得(不失一般性,假設求最大值)

F=f(x0,y0,z0)=maxf(x,y,z)

其中(x,y,z)為自變數,Ω是(x,y,z)的定義域,x,y,z可以是數值,也可以是符號,F為實數,是解的優劣程度或適應度的一種度量,f為解空間點(x,y,z)∈Ω到實數域F ∈ R的一種映射,那麼GA的求解步驟如下:

(1)編碼

用一定比特數的0,1二進制編碼對自變數x,y,z進行編碼形成基因碼鏈,每一碼鏈代表一個個體,表示優化問題的一個解,如x有16種可能取值x0,x1,x2,…,x15,則可用4bit的二進制編碼0000-1111來表示,將x,y,z的基因碼組合在一起則形成碼鏈。

(2)產生群體

t=0,隨機產生n個個體組合成一個群體P(t),該群體代表優化問題的一些可能解的集合,當然,一般來說,它們的素質都很差。GA的任務是要從這些群體出發,模擬進化過程,擇優汰劣,最後得出非常優秀的群體和個體,滿足優化的要求。

(3)評價

按編碼的規則,將群體P(t)中的每一個體的基因碼所對應的自變數(xi,yi,zi)代入(1)式,算出其函數值Fi,i=0,1,2,…,NoFi越大,表示該個體有較高的適應度,更適應於f所定義的生存環境,適應度Fi為群體進化時的選擇提供了依據。

(4)選擇(復制)

按一定概率從群體P(t)中選取M對個體,作為雙親用於繁殖後代,產生新的個體加入下一代群體P(t+1)中。一般Pi與Fi成正比,就是說,適合於生存環境的優良個體將有更多的繁殖後代的機會,從而使優良特性得以遺傳。選擇是遺傳演算法的關鍵,它體現了自然界中適者生存的思想。

(5)交叉

對於選中的用於繁殖的每一對個體,隨即選擇同一整數n,將雙親的基因碼鏈在此位置相互交換。如個體X,Y在位置3經交叉產生新個體X´,Y´,它們組合了父輩個體X,Y的特徵,即

X=X1X2X3X4X5[00011]

Y=Y1Y2Y3Y4Y5[11100]

X´=X1X2X3X4X5[00000]

Y´=Y1Y2Y3Y4Y5[11111]

交叉體現了自然界中信息交換的思想。

(6)變異

以一定概率Pm從群體P(t+1)中隨機選取若干個體,對於選中的個體,隨機選取某一位進行反運算,即由1->0由0->1。同自然界一樣,每一位發生變異的概率是很小的,變異模擬了生物進化過程中的偶然基因突變現象。GA的搜索能力主要是由選擇和交叉賦予的,變異運算元則保證了演算法能搜索到問題解空間的每一點,從而使演算法具有全局最優,它進一步增強了GA的能力。

(7)迭代

對於交叉和變異產生的新一代群體進行重新評價和選擇,然後再進行交叉和變異操作,如此循環往復。當群體中最優個體的適應度和平均適應度值不再提高,或迭代次數達到預設次數時,迭代過程結束。

2.生成曲面片的遺傳演算法

曲面片生成演算法描述如下:

step1:初始化點列P1和P2,初始化交叉概率Pc,初始化變異概率Pm,初始化迭代計數器count為0。

step2:在P1,P2之間隨機產生N個三角劃分,其中每個三角劃分稱為一個串,這些串構成了第一代群體。

step3:對群體中的串隨機地配對並按概率Pc進行交叉,將得到的新串添加到群體中。

step4:對群體中的串按概率Pm進行變異,將得到的新串添加到群體中。

step5:用選擇運算元篩選保留串形成下一代群體。

step6:修改迭代計數值,令count=count+1,如果迭代次數達到預設次數,轉step7,否則轉step3。

step7:返回群體中的最優串,結束。

3.倒轉地層建模

使用前面的曲面生成演算法,可以對如圖4-4所示的倒轉地層面進行建模,圖4-5是通過這種方法進行建模得到的結果。

圖4-4 倒轉地層

圖4-5 倒轉地層建模

二、曲面交叉處理

在礦體出現分叉的情況下,需要把一個剖面上的一條輪廓線與另一個剖面上的多條輪廓線相連接。在本系統中,用以下方式來處理這種情況:首先用剖面1上的一條輪廓線分別與剖面2上的多條輪廓線分別相連得到多個連接曲面,取其中第一個曲面作為目標曲面;然後依次取其他曲面與目標曲面進行交叉處理,每次交叉處理的結果作為下一次交叉處理的目標曲面;最後一次交叉處理所得的曲面即所求實體曲面片。從一條輪廓線出發,分別與另外兩條輪廓線相連得到兩個空間曲面,對這兩個曲面進行交叉處理的演算法描述如下:

step1:初始化表示曲面1的三角形數組TA1,初始化表示曲面2的三角形數組TA2,初始化表示曲面1邊界的線段數組BLA1,使其長度為0,初始化表示曲面2邊界的線段數組BLA2,使其長度為0,初始化表示曲面1和曲面2共同邊界的線段數組BLA使其長度為0。

step2:從三角形數組TA1搜索曲面邊界線(段),結果存入線段數組BLA1中,從三角形數組TA2搜索曲面邊界線(段),結果存入線段數組BLA2中,求BLA1和BLA2的交集,結果存入BLA中,求BLA1與BLA的差集,結果存入BLA1中,求BLA2與BLA的差集,結果存入BLA2中,初始化曲線BLA所在平面的單位法向量N,N從曲線BLA指向曲線BLAl。

step3:初始化循環控制變數I為0。

step4:如果I等於TA1中的三角形的個數,即TA1中的每個三角形都被處理過,轉step9,否則從TA1中取(從0開始計數的)第I個三角形T1

step5:初始化循環控制變數J為0。

step6:如果J等於TA1中的三角形的個數,即TA2中的每個三角形都被處理過,轉step8,否則從TA2中取(從0開始計數的)第J個三角形T2

step7:如果三角形T1和T2不相交或交線在這兩個三角形的邊上,令J=J+1,轉step6,否則把這兩個三角形分別分裂成多個三角形,使得這兩個三角形的交線是分裂後的某兩個三角形的公共邊,從TA1中刪除T1,在T1原來的位置處插入由T1分裂後得到的三角形,從TA2中刪除T2,在T2原來的位置處插入由T2分裂後得到的三角形,轉step4。

step8:令I=I+1,轉step4。

step9:計算三角形數組TA1和TA2中三角形的公共邊,將它們存入臨時線段數組LA中,LA表示曲面I和曲面2的交線。

step10:計算TA1中頂點都不在邊界線BLA上或有一個頂點在邊界線BLA1的三角形,這些三角形的存儲在臨時三角形數組TA11中,計算TA2中頂點都不在邊界線BLA上或有一個頂點在邊界線BLA2的三角形,這些三角形存儲在臨時三角形數組TA21中。

step11:設置臨時三角形數組TA12和TA22,令TA12=TA1-TA11,TA22=TA2-TA21。

step12:改變公共邊界線BLA中線段的方向,使其正向相對於平面法向量N為逆時針方向。

step13:從TA12和TA22中提取相交於公共邊界BLA上的三角形面片對,選擇這對面片中相對於公共邊界線BLA正向處於外側的三角形面片,將TA12中外側三角形保存在臨時三角形數組TA13中,將TA22中外側三角形保存在臨時三角形數組TA23中。令TA12=TA12-TA13,TA22=TA22-TA23。

step14:以交線LA為約束邊界,在TA12中搜索與TA13中相鄰的三角形,將這些三角形添加到TA13中,在TA22中搜索與TA23中相鄰的三角形,將這些三角形添加到TA23中。

step15 返回TA11+TA13+TA21+TA23,結束。

使用如上所述曲面交叉處理演算法,可以對如圖4-6所示的礦體分叉情況進行建模,圖4-7是通過這種方法建模得到的結果。

圖4-6 分叉礦體截面圖

圖4-7 分叉礦體建模

『貳』 如何計算一個點與一個立體閉合曲面

三維閉合曲面構造演算法。計算一個點與一個立體閉合曲面是大學物理中涉及的題目其中需要根據三維閉合曲面構造演算法,進行計算,並且需要使用到計算機進行圖像的構造。

『叄』 同濟第七版高等數學的幾種曲面積分求法

你好!第二類曲面積分的演算法總結如下:
1:由於是有方向性的,所以有
「偶零奇倍」性質,跟一般情況相反的
F(x)是偶函數時,若Σ關於相應的面是對稱的,一個部分取
+,一個部分取
-
結果就是F(x)
-
F(-
x)
=
F(x)
-
F(x)
=
0,兩個部分互相抵消了
F(x)奇函數時,同樣情況,一個部分取
+,一個部分取
-
結果就是F(x)
-
F(-
x)
=
F(x)
+
F(x)
=
2F(x),兩個部分的積分都相等,可疊加
2:三合一公式
對於Σ是z
=
z(x,y)形式的
法向量n
=
±
{
-
z'x,-
z'y,1
}
則∫∫_(Σ)
Pdydz+Qdzdx+Rdxdy
=
±
∫∫_(D)
{
P(-
z'x)
+
Q(-
z'y)
+
1
}
dxdy
取上/右/前
側時,取
+

取下/左/後
側時,取
-

3:高斯公式
∫∫_(Σ)
Pdydz+Qdzdx+Rdxdy
=
±
∫∫∫_(Ω)
(∂P/∂x+∂Q/∂y+∂R/∂z)
dxdydz
-
∫_(Σ和)
Pdydz+Qdzdx+Rdxdy
後面(Σ和)那部分,若原本給的曲面是不能圍成封閉空間的話,不能直接使用高斯公式,需要補上幾個面後使得區域封閉,例如補上若干個(Σ和)曲面,就可以運用高斯公式了,還要注意最後要減少所補上那幾個曲面(Σ和)相應的積分
4:挖洞
若在Σ上,被積函數上有奇點的話,也不能直接運用高斯公式
需要補上一個小空間r=ε,足以包括所有內部的奇點的,然後取半徑ε趨向0
運用高斯公式時也要減去這個部分相應的積分
所以有∫∫_(Σ)
=
±
∫∫∫_(Ω)
-
∫∫_(ε)
5:替代
若被積函數f的方程是在Σ上,則可以優先把Σ的方程代入f中
例如給Σ方程:x²+y²+z²=a²
則∫∫_(Σ)
(Pdydz+Qdzdx+Rdxdy)/√(x²+y²+z²)
=
∫∫_(Σ)
(Pdydz+Qdzdx+Rdxdy)/a
=
(1/a)∫∫_(Σ)
Pdydz+Qdzdx+Rdxdy
於是這樣,就可以避免了4:的情況,不用挖洞
去掉奇點後就可以繼續補面使用高斯公式了
很高興能回答您的提問,您不用添加任何財富,只要及時採納就是對我們最好的回報
。若提問人還有任何不懂的地方可隨時追問,我會盡量解答,祝您學業進步,謝謝。XD
如果問題解決後,請點擊下面的「選為滿意答案」

『肆』 空間曲線和空間曲面什麼區別與聯系其方程都是三元函數嘛

空間曲線與空間曲面都是三元方程,而不一定是三元函數。
區別一個是曲線一個是曲面,其空間所需的計算對象不同:空間曲線對應的有某一點處的切線和法平面;而空間曲面對應的有切平面和法線;

要說聯系,自以為,就在求導以及向量演算法上了。此外,演算法上更不同的是,對曲線的長度計算,和對曲面的面積計算,方法不一樣。

『伍』 第二類曲線積分三種計算方法

一、參數方程法

根據曲線參數方程計算空間第二類曲線積分是參數法計算平面曲線積分情形的推廣,也是計算空間第二類曲線積分最常用的方法之一。

『陸』 曲面細分的原理簡述

曲面細分,或者更准確的說「鑲嵌化處理技術」,就是在頂點與頂點之間自動嵌入新的頂點。在自動插入大量新的頂點之後,模型的曲面會被分得非常細膩,看上去更加平滑緻密。它是一種能夠在圖形晶元內部自動創造頂點,使模型細化,從而獲得更好畫面效果的技術。 曲面細分能自動創造出數百倍與原始模型的頂點,這些不是虛擬的頂點,而是實實在在的頂點,效果是等同於建模的時候直接設計出來的。
曲面細分技術是完全可編程的,它提供了多種插值頂點位置的方法來創造各種曲面:
1. N-Patch曲面,就是和當年TruForm技術一樣,根據基礎三角形頂點的法線決定曲面;
2. 貝塞爾曲面,根據貝塞爾曲線的公式計算頂點的位置;
3. B-Spline、NURBs、NUBs曲線(這三種曲線均為CAD領域常用曲線,在Maya中均有相應工具可以生成)
4. 通過遞歸演算法接近Catmull-Clark極限曲面。Tessellation技術最初主要被用以「細分曲面」,隨著該技術被納入DirectX11范疇,得到大范圍推廣之後,插值頂點的演算法也越來越多,因此用途也越來越廣,產生了很多非常有創意的應用。 例如nVIDIA的一個Demo演示了利用Tessellation技術生產的「頭發」,這些頭發都是真實存在的,當然並不是為每一根頭發建立一個模型,而是利用Tessellation技術在有限的頭發模型中,鑲嵌入更多的頭發模型。
除了大幅提升模型細節和畫質外,Tessellation最吸引程序員的地方就是:他們無需手動設計上百萬個三角形的復雜模型,只需簡單勾繪一個輪廓,剩下的就可以交給Tessellation技術自動鑲嵌,大大提高開發效率;而且簡單的模型在GPU處理時也能大幅節約顯存開銷,同時大幅提升渲染速度。

『柒』 曲面擬合方法和曲面重構方法有哪些

散點曲面重構是計算機圖形學中的一個基本問題,針對這個問題提出了一種全新的基於核回歸方法的散點曲面重構方法,使用二維信號處理方法中非參數濾波等成熟手段進行曲面重構。
這種方法可以生成任意階數連續的曲面,在理論上保證了生成曲面的連續性,可以自定義網格的拓撲,在曲率大或者感興趣的局部能夠自適應調整網格點的密度,生成的結果方便LOD建模,數據的擬合精度也可以通過調整濾波參數控制,演算法自適應調整濾波器的方向,使結果曲面可以更好保持尖銳特徵。同時在構造過程中避免了傳統的細分曲面方法中迭代、Delaunay剖分和點雲數據中重采樣等時間開銷大的過程,提高了效率。對於采樣不均、雜訊較大的數據。該演算法的魯棒性很好。實驗表明這種曲面建模方法能夠散點重構出精度較高的連續曲面,在效率上有很大提高,在只需要估計曲面和其一階導數時,利用Nadaraya-Watson快速演算法可以使演算法時間復雜度降為O(N),遠低於其他曲面重構平滑方法。同時演算法可以對曲面的局部點雲密度、網格頂點法矢等信息做有效的估計。重構出的曲面對類似數字高程模型(DEM)的數據可以保證以上的優點。但如果散點數據不能被投影到2維平面上,曲面重構就需要包括基網格生成、重構面片縫合等過程。縫合邊緣的連續性也不能在理論上得到保證

『捌』 曲面積分的演算法高數

## 幾何意義
曲面Σ上任一點都滿足x^2+y^2+z^2=4,所以積分區域上的被積函數x^2+y^2+z^2=4
I = 4∫∫dS = 4*4πR^2 = 64π
其中∫∫dS的幾何意義是Σ即球面x^2+y^2+z^2=4的表面積,代入表面積公式4πR^2即可

『玖』 (高數)曲面積分的計算

直接化成二重積分計算。
∑在xoy的投影區域D是:
直線x+y=1與兩個坐標軸圍成的直角三角形區域。
原式=-∫∫〔D〕【xy(1-x-y)】dxdy
=-∫〔0到1〕dx∫〔0到1-x〕【xy-xxy-xyy】dy

熱點內容
手機如何解壓百度雲文件 發布:2024-05-19 00:32:24 瀏覽:904
centos使用python 發布:2024-05-18 23:39:48 瀏覽:867
幻影天龍腳本 發布:2024-05-18 23:38:17 瀏覽:712
編程的py 發布:2024-05-18 23:36:22 瀏覽:74
安卓系統怎麼改序列號 發布:2024-05-18 23:28:16 瀏覽:783
c語言中實數 發布:2024-05-18 23:21:03 瀏覽:895
伺服器搭建題目 發布:2024-05-18 23:01:29 瀏覽:28
下載武裝突襲後怎麼進伺服器 發布:2024-05-18 22:56:17 瀏覽:825
c語言字元串大寫變小寫 發布:2024-05-18 22:56:16 瀏覽:438
重啟刪除的文件夾 發布:2024-05-18 22:34:11 瀏覽:638