專利名稱:針對(duì)邊界元分析的三維可視化仿真方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一對(duì)邊界元分析后的處理結(jié)果進(jìn)行三維可視化仿真的方法。
背景技術(shù):
在工程領(lǐng)域,常需要采用有限元法或邊界元分析法等實(shí)現(xiàn)對(duì)復(fù)雜系統(tǒng)中離散模塊的求解分析,而三維可視化仿真方法則提供了技術(shù)人員研究分析結(jié)果的交互手段。有限元法的基本求解思想是把計(jì)算域劃分為有限個(gè)互不重疊的單元,在每個(gè)單元內(nèi),選擇一些合適的節(jié)點(diǎn)作為求解函數(shù)的插值點(diǎn),將微分方程中的變量改寫成由各變量或其導(dǎo)數(shù)的節(jié)點(diǎn)值與所選用的插值函數(shù)組成的線性表達(dá)式,借助于變分原理或加權(quán)余量法,將微分方程離散求解;邊界元分析法是在有限元法之后發(fā)展起來的一種較精確有效的工程數(shù)值分析方法,又稱邊界積分方程-邊界元法,其以定義在邊界上的邊界積分方程為控制方程,通過對(duì)邊界分元插值離散,化為代數(shù)方程組求解?,F(xiàn)有公開了一種基于有限元分析后處理結(jié)果的三維可視化方法,該方法的工作過程是通過對(duì)生成的網(wǎng)格單元體分解,剔除內(nèi)部的公共數(shù)據(jù)面,生成外輪廓面集合;對(duì)外輪廓面集合進(jìn)行共面分組,得到共面的單元數(shù)據(jù)面集合CoMAP ;將每一組CoMAP中的所有單元數(shù)據(jù)面分解成為獨(dú)立的單元數(shù)據(jù)邊,剔除所有的內(nèi)部公共邊,得到共面輪廓線集合;對(duì)所有共面輪廓線集合進(jìn)行輪廓線分組,將所有形成封閉廓線的邊分為一組;最后根據(jù)每一組封閉輪廓線生成一個(gè)獨(dú)立的拓?fù)涿?,并判斷此拓?fù)涿鏋槎催€是表面,對(duì)所有的非洞表面執(zhí)行布爾求和運(yùn)算,對(duì)洞執(zhí)行布爾求差運(yùn)算,生成三維模型。該方法是基于有限元分析后的處理結(jié)果,該方法對(duì)于邊界元分析后的處理結(jié)果,具有如下缺陷I、邊界元分析法對(duì)模型網(wǎng)格的劃分都為三角形單元,而有限元分析的單元種類較多,因此上述方法建立的快速生成算法對(duì)邊界元分析后的處理結(jié)果來說,處理速度不是最優(yōu)化的。2、上述方法生成三維模型時(shí)并未考慮單個(gè)模型下的網(wǎng)格模型、實(shí)體模型及云圖模型的建立,無法滿足后處理三維可視化的完整功能要求。3、上述方法只是單純的考慮模型的生成,而未對(duì)模型的三維操作做相關(guān)研究,無法滿足使用者在后處理階段對(duì)模型整體查看、局部放大等視角變化的要求。此外,還存在當(dāng)前模型坐標(biāo)系方位指示(參考坐標(biāo)系的建立)、快捷視景切換等功能的缺失。4、上述方法未提供截屏出圖、云圖數(shù)值信息顯示、計(jì)算機(jī)顯示狀態(tài)顯示等功能,對(duì)模型幾何信息、數(shù)值信息的顯示不夠,應(yīng)用領(lǐng)域較為局限。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述問題而提供了一種可對(duì)邊界元分析后的處理結(jié)果進(jìn)行三維可視化仿真的方法。本發(fā)明采用的技術(shù)手段如下本發(fā)明的針對(duì)邊界元分析的三維可視化仿真方法包括 步驟I :讀入建模軟件(如ANSYS、PATRAN、SESAM等)對(duì)工程項(xiàng)目進(jìn)行邊界元分析后輸出的結(jié)果文件,該結(jié)果文件包含模型節(jié)點(diǎn)坐標(biāo)信息、單元組織信息及節(jié)點(diǎn)數(shù)值信息。步驟2 :建立頂點(diǎn)緩沖和索引緩沖,將節(jié)點(diǎn)坐標(biāo)信息和節(jié)點(diǎn)數(shù)值信息錄入頂點(diǎn)緩沖,將單元組織信息錄入索引緩沖,生成網(wǎng)格模型、實(shí)體模型、云圖模型和參考坐標(biāo)系,如圖2所示。在建立頂點(diǎn)緩沖的同時(shí),還記錄極值信息,該極值信息一方面為初始視角的建立提供依據(jù),另一方面為云圖數(shù)值信息提供數(shù)據(jù)儲(chǔ)備。步驟3 :對(duì)模型和參考坐標(biāo)系同步進(jìn)行渲染、三維操作、或其它操作。其中的三維操作可以包括平移操作、縮放操作、三維球旋轉(zhuǎn)操作、球形旋轉(zhuǎn)操作、定點(diǎn)旋轉(zhuǎn)操作、三向軸旋轉(zhuǎn)操作;其中的其它操作可以包括模型動(dòng)態(tài)切換操作、視圖快捷切換操作、截屏出圖操作、顯卡狀態(tài)信息數(shù)據(jù)信息顯示操作。本發(fā)明有益效果是1、由于本發(fā)明處理的邊界元分析文件僅需輸入構(gòu)建模型和云圖的基本信息,對(duì)格式?jīng)]有特殊要求,因而可使用通用商業(yè)工程軟件(Ansys、PatraruSesam等)提供輸入信息,具有靈活的處理機(jī)制和較為廣泛的適用性,具有良好的實(shí)際工程應(yīng)用價(jià)值;2、本發(fā)明采用的模型生成算法和動(dòng)態(tài)切換云圖技術(shù)考慮了最小化占用顯卡資源,對(duì) 一般工程結(jié)構(gòu)物渲染時(shí)間在O. 5毫秒以下,完全可以滿足高速實(shí)時(shí)渲染,操作流暢的運(yùn)行要求,可以流暢地運(yùn)行在普通硬件配置的計(jì)算機(jī)環(huán)境里;3、考慮邊界元三角形網(wǎng)格的特點(diǎn),本發(fā)明采用了 32位擴(kuò)充網(wǎng)格簇容量技術(shù),在64位計(jì)算機(jī)環(huán)境下可接受的最大節(jié)點(diǎn)數(shù)為4. 29X 109,完全可以滿足工程實(shí)際結(jié)構(gòu)物對(duì)節(jié)點(diǎn)規(guī)模的要求;4、發(fā)明提供對(duì)邊界元網(wǎng)格模型、實(shí)體模型、云圖模型的多種三維操作模式,使得技術(shù)人員能形象直觀的查看模型狀態(tài)、分析理解計(jì)算數(shù)據(jù)。此外,本發(fā)明提供的截屏、顯示狀態(tài)提示、參考坐標(biāo)系等功能能夠更好得滿足設(shè)計(jì)人員后處理工作的任務(wù)要求,具有廣泛的應(yīng)用前景。
以下結(jié)合附圖
及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明圖I為本發(fā)明三維可視化仿真方法的流程圖。圖2為本發(fā)明中結(jié)果文件處理部分的流程圖。圖3為三維球算法示意圖。圖4為屏幕坐標(biāo)系與模型坐標(biāo)系位置關(guān)系示意圖。
具體實(shí)施例方式如圖I所示,本發(fā)明的三維可視化仿真方法包括 步驟I :讀入建模軟件(如ANSYS、PATRAN、SESAM等)對(duì)工程項(xiàng)目進(jìn)行邊界元分析后輸出的結(jié)果文件,該結(jié)果文件包含模型節(jié)點(diǎn)坐標(biāo)信息、單元組織信息及節(jié)點(diǎn)數(shù)值信息。步驟2 :建立頂點(diǎn)緩沖和索引緩沖,將節(jié)點(diǎn)坐標(biāo)信息和節(jié)點(diǎn)數(shù)值信息錄入頂點(diǎn)緩沖,將單元組織信息錄入索引緩沖,生成網(wǎng)格模型、實(shí)體模型、云圖模型和參考坐標(biāo)系,如圖2所示。在建立頂點(diǎn)緩沖的同時(shí),還記錄極值信息,該極值信息一方面為初始視角的建立提供依據(jù),另一方面為云圖數(shù)值信息提供數(shù)據(jù)儲(chǔ)備。步驟3 :對(duì)模型和參考坐標(biāo)系同步進(jìn)行渲染、三維操作、或其它操作。其中的三維操作可以包括平移操作、縮放操作、三維球旋轉(zhuǎn)操作、球形旋轉(zhuǎn)操作、定點(diǎn)旋轉(zhuǎn)操作、三向軸旋轉(zhuǎn)操作;其中的其它操作可以包括模型動(dòng)態(tài)切換操作、視圖快捷切換操作、截屏出圖操作、顯卡狀態(tài)信息數(shù)據(jù)信息顯示操作。下面分別予以闡述一、當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行渲染操作時(shí),考慮邊界元分析的網(wǎng)格特點(diǎn),采用SlimDX中支持的Triangle List單元作為網(wǎng)格基元,該基元的優(yōu)點(diǎn)在于可動(dòng)態(tài)的繪制三角形網(wǎng)格,滿足邊界元分析要求、表達(dá)復(fù)雜物體時(shí)占用和處理時(shí)間的效率更高、顏色賦值更為靈活、網(wǎng)格顯示效果更加平滑自然等等。為達(dá)到良好的云圖渲染效果,需自定義SlimDX中頂點(diǎn)緩沖的渲染性質(zhì)及占用顯存的大小,步驟2中建立的頂點(diǎn)緩存是基于位置向量和漫射顏色的頂點(diǎn)緩沖,單個(gè)頂點(diǎn)緩沖占用顯存大小為16字節(jié),網(wǎng)格內(nèi)部通過對(duì)頂點(diǎn)顏色RGB值的插值計(jì)算進(jìn)行渲染,保證網(wǎng)格內(nèi)部顏色的平滑過渡。步驟3又包括以下步驟步驟301 :定義渲染控件;步驟302 :設(shè)定SlimDX的初始化參數(shù),該初始化參數(shù)包括指定渲染設(shè)備、設(shè)定Z向深度緩存、設(shè)定后臺(tái)緩沖寬高、指定材質(zhì)通道、選擇消隱模式、設(shè)置光照屬性等。
步驟303 :用網(wǎng)格容器封裝步驟2的頂點(diǎn)緩沖和索引緩沖,形成多組網(wǎng)格簇,并寫入顯存。對(duì)于網(wǎng)格模型,生成一組網(wǎng)格簇;對(duì)于實(shí)體模型,生成兩組網(wǎng)格簇;對(duì)于云圖模型,生成一組網(wǎng)格簇。該步驟可實(shí)現(xiàn)模型之間的動(dòng)態(tài)流暢的切換。步驟304:通過世界矩陣、視圖矩陣、投影矩陣設(shè)定視角參數(shù),并調(diào)整模型初始位置位于屏幕的中心。該調(diào)整過程又包括步驟3041 :計(jì)算模型在三向軸的軸方向的極值;步驟3042:計(jì)算模型的幾何中心,假設(shè)模型在X軸方向的最大值是Xmax,最小值是Xmin,在Y軸方向的最大值是Ymax,最小值是Ymin,在Z軸方向的最大值是Zmax,最小值是Zmin,幾何中心坐標(biāo)是(Xcenter, Ycenter, Zcenter),則有Xcenter= (Xmax+Xmin) /2;Ycenter= (Ymax+Ymin) /2;Zcenter= (Zmax+Zmin) /2;步驟3043 :通過對(duì)世界矩陣三向軸負(fù)向移動(dòng)該幾何中心的距離,使得幾何中心與
屏幕中心重合。步驟305 :顯示渲染狀態(tài)及模型信息。該模型信息包括模型的節(jié)點(diǎn)總數(shù)、單元總數(shù)、云圖極值以及云圖的數(shù)值分配信息。該節(jié)點(diǎn)總數(shù)、單元總數(shù)及云圖極值通過SlimDX的二維文字單元結(jié)合步驟2中保存的極值信息顯示。云圖的數(shù)值圖譜的顏色范圍是根據(jù)計(jì)算機(jī)RGB值線性選取紅色至藍(lán)色的20種顏色。本發(fā)明對(duì)云圖的數(shù)值圖譜的處理過程是對(duì)步驟I中的節(jié)點(diǎn)數(shù)值信息進(jìn)行排序,生成20個(gè)區(qū)間數(shù)值;之后利用圖形設(shè)備接口生成云圖數(shù)值圖譜圖片文件,設(shè)置圖片文件的清晰度、呈現(xiàn)質(zhì)量,保存在當(dāng)前文件夾下;將對(duì)應(yīng)的圖片文件載入材質(zhì)單元,設(shè)置材質(zhì)屬性;將材質(zhì)單元封裝到SlimDX的二維容器類Sprite中,設(shè)置為待渲染狀態(tài)。渲染狀態(tài)指計(jì)算機(jī)顯卡的當(dāng)前狀態(tài),它對(duì)渲染刷新幀數(shù)及三維操作的流暢度有著直接影響。本發(fā)明顯示的渲染狀態(tài)包括計(jì)算機(jī)顯卡型號(hào)、刷新頻率、顯示屏分辨率及每秒刷新幀數(shù)(FPS)值。其中,F(xiàn)PS值是通過計(jì)算渲染循環(huán)中每一幀耗用的毫秒數(shù)求得的。步驟306 :設(shè)置容錯(cuò)代碼,以防止因?yàn)榻裹c(diǎn)切換、全屏顯示等情況產(chǎn)生的渲染失敗現(xiàn)象。容錯(cuò)代碼一方面為設(shè)備丟失添加了事件響應(yīng)代碼,該部分代碼的作用是在設(shè)備丟失情況發(fā)生時(shí)釋放所有資源,從步驟I開始重新啟動(dòng)設(shè)備;另一方面添加結(jié)果監(jiān)視配置,阻止在設(shè)備丟失時(shí)繼續(xù)渲染圖形。步驟307 :清空幀緩存及深度緩存,設(shè)置網(wǎng)格簇渲染的邏輯控制機(jī)制,設(shè)定模型網(wǎng)格的填充模式(實(shí)現(xiàn)網(wǎng)格模型的生成),將繪制好的圖像發(fā)送至屏幕顯示,利用SlimDX的消息循環(huán)實(shí)現(xiàn)對(duì)模型和參考坐標(biāo)系的循環(huán)渲染。本發(fā)明的消息處理主要是滿足動(dòng)態(tài)流暢切換云圖的需要,實(shí)現(xiàn)網(wǎng)格簇渲染的邏輯控制。如在選取云圖顯示時(shí),消息處理機(jī)制將關(guān)閉原模型的網(wǎng)格簇渲染通道,開啟云圖的渲染管道,同時(shí)載入步驟305中已寫入顯存的二維Sprite對(duì)象,顯示云圖數(shù)值圖譜。此外,消息處理機(jī)制還可對(duì)當(dāng)前模型視角截圖功能提供支持,實(shí)現(xiàn)方式是通過前臺(tái)緩 存獲取SlimDX的表面對(duì)象,將該表面對(duì)象復(fù)制至后臺(tái)緩存,通過后臺(tái)緩存表面對(duì)象的文件生成功能實(shí)現(xiàn)圖片的保存。步驟308 :釋放顯存和內(nèi)存資源。二、當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行三維操作時(shí),為了解決因分離渲染導(dǎo)致的窗口不透明問題,本發(fā)明采用了單位向量投影二維屏幕的方法予以解決,具體實(shí)現(xiàn)過程如下a.聲明二維線段Lx、LY、Lz及二維坐標(biāo)軸文字X、Y、Z,二維坐標(biāo)待定。b.在每渲染一巾貞圖像時(shí),聲明參考坐標(biāo)系三向軸單位向量尸% = (1,0,0}Γ、
Fy= {0/i,0JF、Fi =紙O,Ilr,根據(jù)當(dāng)前視圖空間寬高、世界矩陣、視角矩陣、投影矩陣值導(dǎo)入SlimDX的向量投影公式,求得二維屏幕空間三向軸的投影向量c.將b步驟中三個(gè)投影向量的X軸、Y軸坐標(biāo)分別賦給a步驟聲明的二維線段和二維坐標(biāo)軸文字,實(shí)現(xiàn)二維線段、二維文字與參考坐標(biāo)系的聯(lián)動(dòng)。d.隱藏原參考坐標(biāo)系的顯示,即可實(shí)現(xiàn)透明條件下參考坐標(biāo)系的建立。當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行平移操作時(shí),步驟3又包括以下步驟步驟309 :在鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的二維坐標(biāo)(Xtjld, Yold)。步驟310 :在每一幀圖形渲染時(shí)記錄鼠標(biāo)拖動(dòng)后的二維坐標(biāo)(XnOT,Ynew)。步驟311 :計(jì)算鼠標(biāo)拖動(dòng)距離與模型移動(dòng)距離之間的移動(dòng)系數(shù),選取O. 025作為基準(zhǔn),計(jì)算當(dāng)前視點(diǎn)向量與焦點(diǎn)向量的向量差值長(zhǎng)度,求得移動(dòng)系數(shù)
ΔΜ = 0.02S *·■ I Ft W — Focm\
O步驟312:獲取當(dāng)前視圖矩陣(4x4),利用下述公式求得移動(dòng)后視點(diǎn)向量與
焦點(diǎn)向量FeciiS的值:
FieW =}.Xview = -ΔΜ*[ (Xnew-Xold)*M11-(Ynew-Yold)*M12]Yview = -ΔΜ*[ (Xnew-Xold)*M21-(Ynew-Yold)*M22]Zview = -ΔΜ*[ (Xnew-Xold)*M31-(Ynew-Yold)*M32]其中,Mxy代表視圖矩陣第X行第y列的元素值??紤]平移的效果要求,需同等變換視點(diǎn)向量與焦點(diǎn)向量因此令焦點(diǎn)向量Fiiii =視點(diǎn)向量FiiiJ。
步驟313 :將當(dāng)前鼠標(biāo)二維坐標(biāo)賦為(Xt^Ytjld),清空(Χ_,ΥΜ)坐標(biāo)值,如此循環(huán),實(shí)現(xiàn)持續(xù)平移效果。當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行縮放操作時(shí),步驟3又包括以下步驟步驟314:當(dāng)滾動(dòng)鼠標(biāo)滾輪時(shí),判斷鼠標(biāo)輪滾動(dòng)的制動(dòng)器數(shù)的正負(fù),正視為縮進(jìn)當(dāng)前視角,負(fù)視為拉伸當(dāng)前視角。步驟315:計(jì)算當(dāng)前視點(diǎn)向量與焦點(diǎn)向量pGmS的向量差值的單位向量 兩一
I=若步驟314判斷制動(dòng)器數(shù)為負(fù),則向量差值的單位向量—I
JO步驟316 :迭加視點(diǎn)向量1 胃=f/iggf-f f,實(shí)現(xiàn)持續(xù)縮放效果。當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行三維球旋轉(zhuǎn)操作時(shí),步驟3又包括以下步驟步驟317 :在鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的二維坐標(biāo)(Xtjld, Yold),該點(diǎn)定義為A點(diǎn)。步驟318 :在每一巾貞圖形渲染時(shí)記錄鼠標(biāo)拖動(dòng)后的二維坐標(biāo)(Xmw, Ynew),該點(diǎn)定義為B點(diǎn)。步驟319 :根據(jù)三維球算法,視模型處于一球體內(nèi),如圖3所示,該球體的旋轉(zhuǎn)軸為OCi A點(diǎn)到B點(diǎn)的移動(dòng)軌跡處于該球體的半球內(nèi),計(jì)算A點(diǎn)和B點(diǎn)的坐標(biāo),以及旋轉(zhuǎn)軸M和為M與_的夾角,該夾角為旋轉(zhuǎn)角。計(jì)算過程為假設(shè)R為該球體的半徑,W為屏幕寬度,S為當(dāng)前的鼠標(biāo)點(diǎn)坐標(biāo)離屏幕中心的二維距離,則有R = W/2,且:若S = R2- (Xold-R)2- (Yold-R)2 彡 O,則
λ /'-R\ld ~R^
邊—C ......................................................................................=====,,=..............................................................................................^Pj- m2 - (F.W - Rr - m2 - - m1 .
若S-R2- (Xold-R)2- (Yold-R)2 > O,則
Γ Λ βαΜ — 一 R — ^Μ — m2 — ( — i )\J = (~~,~~^---)
Al M mt若S = R2-(Xnew-R)2-(Ynew-R)2 < 0,則
U — /-_~ ^_ _- R⑴—=\i&mw 一 ms 一 GW - m2 tWmw 一 β)2 —;若 S = R2- (Xnew-R)2- (Ynew-R)2 > O,則利用上述公式,求得A點(diǎn)和B點(diǎn)的坐標(biāo);旋轉(zhuǎn)軸@ = M X窗;旋轉(zhuǎn)角
2* EPg-1I-旋轉(zhuǎn)角設(shè)置為2倍是為了在鼠標(biāo)點(diǎn)擊視圖的左中邊緣拖動(dòng)至視圖右中邊緣時(shí)實(shí)現(xiàn)模型以Y軸為旋轉(zhuǎn)軸旋轉(zhuǎn)一周。步驟320 :根據(jù)步驟319得到的旋轉(zhuǎn)軸和旋轉(zhuǎn)角,利用SlimDX定軸旋轉(zhuǎn)創(chuàng)建矩陣MatrixRο步驟321 :提取模型坐標(biāo)系及參考坐標(biāo)系的世界矩陣World,Worldaxis,計(jì)算旋轉(zhuǎn)矩陣轉(zhuǎn)換后的世界矩陣World',World' axis,,沉叫^,表示為:World' = World^MatrixliWorld' axis = World' axis*MatrixR。步驟322 :將轉(zhuǎn)換后的世界矩陣賦給渲染單元,采用上述單位向量投影二維屏幕的算法得到投影后的參考坐標(biāo)軸和文字位置。步驟323 :跟蹤經(jīng)過旋轉(zhuǎn)矩陣轉(zhuǎn)換后的三向軸單位向量,具體如下
權(quán)利要求
1.一種針對(duì)邊界元分析的三維可視化仿真方法,其特征在于包括以下步驟 步驟I :讀入邊界元分析后輸出的結(jié)果文件,該結(jié)果文件包含模型節(jié)點(diǎn)坐標(biāo)信息、單元組織信息及節(jié)點(diǎn)數(shù)值信息; 步驟2 :建立頂點(diǎn)緩沖和索引緩沖,將節(jié)點(diǎn)坐標(biāo)信息和節(jié)點(diǎn)數(shù)值信息錄入頂點(diǎn)緩沖,將單元組織信息錄入索引緩沖,生成網(wǎng)格模型、實(shí)體模型、云圖模型和參考坐標(biāo)系; 步驟3 :對(duì)模型和參考坐標(biāo)系同步進(jìn)行渲染、三維操作、或其它操作;三維操作包括平移操作、縮放操作、三維球旋轉(zhuǎn)操作、球形旋轉(zhuǎn)操作、定點(diǎn)旋轉(zhuǎn)操作、三向軸旋轉(zhuǎn)操作;其它操作包括視圖快捷切換操作、模型動(dòng)態(tài)切換操作、截屏出圖操作、顯卡狀態(tài)信息及數(shù)值信息顯示操作。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行渲染操作時(shí),步驟2在建立頂點(diǎn)緩沖的同時(shí),還記錄極值信息,步驟3又包括 步驟301 :定義渲染控件; 步驟302 :設(shè)定SlimDX的初始化參數(shù); 步驟303 :用網(wǎng)格容器封裝步驟2的頂點(diǎn)緩沖和索引緩沖,形成多組網(wǎng)格簇,并寫入顯存; 步驟304 :通過世界矩陣、視圖矩陣、投影矩陣設(shè)定視角參數(shù),并調(diào)整模型初始位置位于屏幕的中心; 步驟305 :顯示渲染狀態(tài)及模型信息,該模型信息包括模型的節(jié)點(diǎn)總數(shù)、單元總數(shù)、云圖極值以及云圖的數(shù)值分配信息;該節(jié)點(diǎn)總數(shù)、單元總數(shù)及云圖極值通過SlimDX的二維文字單元結(jié)合步驟2中保存的極值信息顯示; 步驟306 :設(shè)置容錯(cuò)代碼; 步驟307 :清空幀緩存及深度緩存,設(shè)置網(wǎng)格簇渲染的邏輯控制機(jī)制,設(shè)定模型網(wǎng)格的填充模式,將繪制好的圖像發(fā)送至屏幕顯示,利用SlimDX的消息循環(huán)實(shí)現(xiàn)對(duì)模型和參考坐標(biāo)系的循環(huán)渲染; 步驟308 :釋放顯存和內(nèi)存資源。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于步驟304又包括以下步驟 步驟3041 :計(jì)算模型在三向軸的軸方向的極值; 步驟3042 :計(jì)算模型的幾何中心,假設(shè)模型在X軸方向的最大值是Xmax,最小值是Xmin,在Y軸方向的最大值是Ymax,最小值是Ymin,在Z軸方向的最大值是Zmax,最小值是Zmin,幾何中心坐標(biāo)是(Xcenter, Ycenter, Zcenter),則有Xcenter= (Xmax+Xmin) /2;Ycenter= (Ymax+Ymin) /2;Zcenter= (Zmax+Zmin) /2; 步驟3043 :通過對(duì)世界矩陣三向軸負(fù)向移動(dòng)該幾何中心的距離,使得幾何中心與屏幕中心重合。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行三維操作時(shí),采用單位向量投影二維屏幕的算法,包括 a.聲明二維線段Lx、LY、Lz及二維坐標(biāo)軸文字X、Y、Z,二維坐標(biāo)待定;b.在每渲染一幀圖像時(shí),聲明參考坐標(biāo)系三向軸單位向量M= (1,0,Of.Fv= (ο,ι,οΓ.Ι = (ο;ολγ,根據(jù)當(dāng)前視圖空間寬高、世界矩陣、視角矩陣、投影矩陣值導(dǎo)入SlimDX的向量投影公式,求得二維屏幕空間三向軸的投影向量戶F%; c.將b步驟中三個(gè)投影向量的X軸、Y軸坐標(biāo)分別賦給a步驟聲明的二維線段和二維坐標(biāo)軸文字,實(shí)現(xiàn)二維線段、二維文字與參考坐標(biāo)系的聯(lián)動(dòng); d.隱藏原參考坐標(biāo)系的顯示,即可實(shí)現(xiàn)透明條件下參考坐標(biāo)系的建立。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行平移操作時(shí),步驟3又包括以下步驟 步驟309 :在鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的二維坐標(biāo)(Xtjld, Yold); 步驟310:在每一幀圖形渲染時(shí)記錄鼠標(biāo)拖動(dòng)后的二維坐標(biāo)(XnOT,YnJ ; 步驟311 :計(jì)算鼠標(biāo)拖動(dòng)距離與模型移動(dòng)距離之間的移動(dòng)系數(shù),選取O. 025作為基準(zhǔn),計(jì)算當(dāng)前視點(diǎn)向量與焦點(diǎn)向量的向量差值長(zhǎng)度,求得移動(dòng)系數(shù)ΔΜ — 0.02-5 |Ftw Foci· I 步驟312 :獲取當(dāng)前視圖矩陣(4x4),利用下述公式求得移動(dòng)后視點(diǎn)向量與焦點(diǎn)向量JpGClIS的值:PieW =%£ew ·* ^rtsivlr Xview = - Λ Μ* [ (Xnew-Xold) *M11- (Ynew-Yold) *Μ12] Yview = - Λ Μ* [ (Xnew-Xold) *Μ21- (Ynew-Yold) *Μ22] Zview = - Λ Μ* [ (Xnew-Xold) *Μ31- (Ynew-Yold) *Μ32] 其中,Mxy代表視圖矩陣第X行第Y列的兀素值,焦點(diǎn)向量FeeMS =視點(diǎn)向量Fi&w;步驟313 :將當(dāng)前鼠標(biāo)二維坐標(biāo)賦為(Xt5ld, U,清空(XMW,Ynew)坐標(biāo)值,如此循環(huán),實(shí)現(xiàn)持續(xù)平移效果; 當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行縮放操作時(shí),步驟3又包括以下步驟 步驟314:當(dāng)滾動(dòng)鼠標(biāo)滾輪時(shí),判斷鼠標(biāo)輪滾動(dòng)的制動(dòng)器數(shù)的正負(fù),正視為縮進(jìn)當(dāng)前視角,負(fù)視為拉伸當(dāng)前視角; 步驟315:計(jì)算當(dāng)前視點(diǎn)向量|^|0胃與焦點(diǎn)向量Fgcus的向量差值的單位向量 ^qqus/=若步驟314判斷制動(dòng)器數(shù)為負(fù),則向量差值的單位向量|= _1jI 步驟316 :迭加視點(diǎn)向量f,實(shí)現(xiàn)持續(xù)縮放效果。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行三維球旋轉(zhuǎn)操作時(shí),步驟3又包括以下步驟 步驟317 :在鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的二維坐標(biāo)(Xtjld, Ytjld),該點(diǎn)定義為A點(diǎn); 步驟318 :在每一幀圖形渲染時(shí)記錄鼠標(biāo)拖動(dòng)后的二維坐標(biāo)(Χ_,ΥΜ),該點(diǎn)定義為B占. 步驟319 :根據(jù)三維球算法,視模型處于一球體內(nèi),該球體的旋轉(zhuǎn)軸為@ A點(diǎn)到B點(diǎn)的移動(dòng)軌跡處于該球體的半球內(nèi),計(jì)算A點(diǎn)和B點(diǎn)的坐標(biāo),以及旋轉(zhuǎn)軸M和為
7.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行球形旋轉(zhuǎn)操作時(shí),步驟3又包括以下步驟 步驟325 :在鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的二維坐標(biāo)(Xtjld, Yold); 步驟326:在每一幀圖形渲染時(shí)記錄鼠標(biāo)拖動(dòng)后的二維坐標(biāo)(XnOT,YnJ ; 步驟327:計(jì)算期望達(dá)到的、模型坐標(biāo)系原點(diǎn)與屏幕坐標(biāo)系原點(diǎn)之間的連線繞模型坐標(biāo)系X軸的轉(zhuǎn)角a x = (Xnew-Xold) *2 π /W,和繞模型坐標(biāo)系Y軸的轉(zhuǎn)角a y = (Ynew-Yold) *2 π /H,其中,屏幕寬度為W,屏幕高度為H ; 步驟328 :計(jì)算模型坐標(biāo)系原點(diǎn)與屏幕坐標(biāo)系原點(diǎn)之間的距離
8.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行定點(diǎn)旋轉(zhuǎn)操作時(shí),步驟3又包括以下步驟 步驟333 :在鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的二維坐標(biāo)(Xtjld, Yold); 步驟334:在每一幀圖形渲染時(shí)記錄鼠標(biāo)拖動(dòng)后的二維坐標(biāo)(XnOT,YnJ ; 步驟335:計(jì)算期望達(dá)到的、模型坐標(biāo)系原點(diǎn)與屏幕坐標(biāo)系原點(diǎn)之間的連線繞模型坐標(biāo)系X軸的轉(zhuǎn)角a x = (Xnew-Xold) *2 π /W,和繞模型坐標(biāo)系Y軸的轉(zhuǎn)角a y = (Ynew-Yold) *2 π /H,其中,屏幕寬度為W,屏幕高度為H ; 步驟336 :利用SlimDX定軸旋轉(zhuǎn)創(chuàng)建矩陣MatrixK ; 步驟337 :提取模型坐標(biāo)系及參考坐標(biāo)系的世界矩陣,分別為World,Worldaxis,計(jì)算變換后的模型坐標(biāo)系下世界矩陣World' = fforld*MatrixE,計(jì)算變換后的參考坐標(biāo)系下世界矩陣 World' axis = World; axis*MatrixE ; 步驟338 :將步驟337得到的世界矩陣賦給渲染單元,同時(shí)采用所述單位向量投影二維屏幕的算法得到投影后的參考坐標(biāo)軸和文字位置; 步驟339 :跟蹤經(jīng)過旋轉(zhuǎn)矩陣變換的三向軸單位向量,具體為
9.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行三向軸旋轉(zhuǎn)操作時(shí),步驟3又包括以下步驟 步驟34I:聲明參考坐標(biāo)系中的三向軸單位向量
10.根據(jù)權(quán)利要求I所述的方法,其特征在于當(dāng)對(duì)模型和參考坐標(biāo)系同步進(jìn)行視圖快捷切換操作時(shí),快捷視圖包括主視圖、俯視圖、側(cè)視圖和斜視圖,步驟3又包括以下步驟 步驟349 :模型坐標(biāo)系和參考坐標(biāo)系的世界矩陣初始化居中,根據(jù)四種視圖角度采用SlimDX的繞軸旋轉(zhuǎn)方法進(jìn)行旋轉(zhuǎn)變換; 步驟350 :初始化模型坐標(biāo)系和參考坐標(biāo)系的視圖矩陣和投影矩陣; 步驟351 :采用所述單位向量投影二維屏幕的算法得到投影后的參考坐標(biāo)軸和文字位置; 步驟352 :初始化三向軸單位向量
全文摘要
本發(fā)明公開了一種針對(duì)邊界元分析的三維可視化仿真方法,包括1讀入邊界元分析后輸出的結(jié)果文件;2建立頂點(diǎn)緩沖和索引緩沖,將節(jié)點(diǎn)坐標(biāo)信息和節(jié)點(diǎn)數(shù)值信息錄入頂點(diǎn)緩沖,將單元組織信息錄入索引緩沖,生成網(wǎng)格模型、實(shí)體模型、云圖模型和參考坐標(biāo)系;3對(duì)模型和參考坐標(biāo)系同步進(jìn)行渲染、三維操作、或其它操作。該方法針對(duì)邊界元分析后的結(jié)果文件進(jìn)行處理,僅需輸入構(gòu)建模型和云圖的基本信息,對(duì)格式?jīng)]有特殊要求,可使用通用商業(yè)工程軟件,如Ansys、Patran、Sesam等提供輸入信息,具有靈活的處理機(jī)制和較為廣泛的適用性,具有良好的實(shí)際工程應(yīng)用價(jià)值。
文檔編號(hào)G06T15/00GK102902848SQ20121034786
公開日2013年1月30日 申請(qǐng)日期2012年9月18日 優(yōu)先權(quán)日2012年9月18日
發(fā)明者黃一, 王普, 施以航, 王文華 申請(qǐng)人:大連理工大學(xué)