亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DirectX的高爐三維斷面顯示方法研究與實(shí)現(xiàn)

        2018-04-04 08:59:37
        關(guān)鍵詞:利用方法模型

        林 敏

        (武漢工程職業(yè)技術(shù)學(xué)院 湖北 武漢:430080)

        現(xiàn)代大型高爐要保持長壽有兩個(gè)瓶頸,一個(gè)是爐缸爐底容易燒穿,另一個(gè)是爐腹、爐腰及爐身下部壽命短。高爐生產(chǎn)實(shí)踐表明,隨著冶煉強(qiáng)度的不斷提高,由于爐缸爐底燒穿而導(dǎo)致高爐停爐的現(xiàn)象在國內(nèi)外屢見不鮮。因此,確保爐缸爐底的長壽對整個(gè)高爐生命周期的延長至關(guān)重要。由于高爐具有“暗箱操作”的特點(diǎn),不能將其剖開對爐缸爐底侵蝕情況進(jìn)行檢測,只能借助于現(xiàn)代計(jì)算機(jī)技術(shù)對高爐侵蝕情況進(jìn)行分析、判斷并加以預(yù)測。很多鋼鐵企業(yè)都建有自己的高爐侵蝕預(yù)測系統(tǒng),用以直觀地反映高爐斷面的溫度分布情況。

        圖1為高爐二維斷面溫度分布示意圖,能有效輔助工程人員對爐內(nèi)情況進(jìn)行判斷。此類系統(tǒng)的圖形繪制主要基于GDI技術(shù)。該技術(shù)具有繪圖便捷以及與硬件無關(guān)的優(yōu)點(diǎn),但是由于其屏蔽硬件細(xì)節(jié)是建立在損失部分效率的基礎(chǔ)之上,故采用GDI繪圖的場景一般繪圖速度較慢,工程人員為提高其顯示效率和減小繪圖閃爍做出了不少努力。

        圖1 高爐斷面溫度分布示意圖

        相比于GDI,DirectX有直接訪問顯示硬件的特點(diǎn),能快速的進(jìn)行復(fù)雜圖形繪制。本文在分析了DirectX繪圖原理的基礎(chǔ)上,以某鋼鐵企業(yè)高爐侵蝕預(yù)測系統(tǒng)為應(yīng)用背景,詳細(xì)說明了如何在實(shí)際開發(fā)中基于DirectX實(shí)現(xiàn)繪制高爐三維模型斷面功能。

        1 系統(tǒng)組成

        以某鋼鐵企業(yè)為例,在高爐建造過程會(huì)在爐壁和爐底埋設(shè)許多熱電偶,高爐運(yùn)行時(shí)利用熱電偶采集高爐爐缸爐壁溫度數(shù)據(jù)。其采集的溫度數(shù)據(jù)存放于Oracle數(shù)據(jù)庫中,利用Oracle公司提供的instant client動(dòng)態(tài)鏈接庫可以將溫度數(shù)據(jù)提取出來用于數(shù)值計(jì)算,并模擬爐內(nèi)溫度分布情況。程序完成數(shù)值計(jì)算后得到一系列的二維斷面溫度數(shù)據(jù),利用計(jì)算機(jī)圖像顯示技術(shù)將二維斷面溫度顯示出來以供工程人員參考。顯示平臺(tái)采用C/S和三層架構(gòu),以客戶端的形式與Oracle數(shù)據(jù)服務(wù)器交互。

        圖2 斷面顯示結(jié)構(gòu)示意圖

        如圖2所示,底層對應(yīng)數(shù)據(jù)訪問層依賴于運(yùn)行于Windows平臺(tái)上的.NET框架以及DirectX圖形編程接口,采用Oracle提供的輕量級(jí)客戶端訪問存儲(chǔ)熱電偶的數(shù)據(jù)庫。業(yè)務(wù)邏輯層利用下層接口構(gòu)造滿足需要處理數(shù)據(jù)的邏輯以及通信需求。最上層則是UI呈現(xiàn)負(fù)責(zé)同用戶的交互功能實(shí)現(xiàn)以及對必要的數(shù)據(jù)進(jìn)行輸入及校驗(yàn)其合法性。

        2 DirectX三維模型切割方法

        DirectX是微軟提供的三維圖形編程接口,廣泛地應(yīng)用于工業(yè)仿真領(lǐng)域。DirectX中模型由頂點(diǎn)構(gòu)成的三角形組成,渲染中只渲染模型表面,內(nèi)部則是中空狀態(tài),故DirectX很少用于模擬模型內(nèi)部狀況。粒子是DirectX中用于模擬微小顆粒如煙霧和火花等的數(shù)據(jù)結(jié)構(gòu)。由于其具備坐標(biāo)及顏色屬性,與數(shù)值計(jì)算獲得的斷面溫度數(shù)據(jù)特點(diǎn)相符,適合用以模擬斷面溫度分布。根據(jù)DirectX的工作原理,有如下幾種方法對模型進(jìn)行切割:

        方法1:用SetClipPlane函數(shù)對模型進(jìn)行切割,用粒子填充斷面;

        利用SetClipPlane切割,其函數(shù)原型如下:

        HRESULT SetClipPlane(

        [in] DWORD Index, //裁剪面編號(hào)

        [in] const float*pPlane, //裁剪面參數(shù)

        );

        Index參數(shù)表明裁剪面編號(hào),pPlane指針指向含有4個(gè)參數(shù)float型數(shù)組,記為A、B、C和D,用以確定Ax+By+Cz+Dw=0平面。如果模型中頂點(diǎn)(x,y,z)滿足Ax+By+Cz+Dw>=0則可見,否則不可見。通過以上方法對模型進(jìn)行裁剪并用粒子填充斷面,如果粒子離切面較近,在DirectX中旋轉(zhuǎn)模型會(huì)將某些粒子剔除,太遠(yuǎn)則斷面與模型邊緣脫離,顯示效果較差。

        方法2:利用平面對模型切割,將模型位于平面一側(cè)的頂點(diǎn)剔除并取得處于切面上的頂點(diǎn),利用多邊形三角化算法生成三角形組成斷面;

        由方法1的原理可以自行設(shè)置切面,計(jì)算切面附近的頂點(diǎn),將獲得頂點(diǎn)順時(shí)針連接可以形成多邊形斷面。但DirectX渲染以三角形為單位,不能直接繪制多邊形。方法2將頂點(diǎn)組成的多邊形轉(zhuǎn)化為若干三角形后進(jìn)行繪制,三角化使用較多為Delaunay算法。

        由于DirectX著色只支持flat、gouraud以及phong幾種模式而不能自由改變頂點(diǎn)間顏色,與繪制斷面需要靈活改變某點(diǎn)顏色需求不符,因此不適合本應(yīng)用場景。

        方法3:高爐完整模型和斷面模型交替渲染顯示斷面模型,用點(diǎn)精靈覆蓋于斷面處形成斷面。

        利用該方法可以精確控制斷面坐標(biāo)及顏色,在合理設(shè)置粒子坐標(biāo)的前提下,繪制斷面時(shí)不會(huì)出現(xiàn)斷面與模型脫離,適合作為模型切割的解決方案。

        3 三維斷面顯示

        顯示三維斷面需要完成三個(gè)步驟:第一步根據(jù)用戶輸入的角度,利用插值計(jì)算出斷面的溫度數(shù)據(jù);第二步,根據(jù)監(jiān)控系統(tǒng)是否處于斷面顯示狀態(tài),讀入并顯示利用3ds MAX設(shè)計(jì)好高爐爐缸完整或者斷面模型;第三步,將第一步計(jì)算好的溫度數(shù)據(jù)進(jìn)行坐標(biāo)變換置于三維坐標(biāo)系中,同時(shí)根據(jù)不同的溫度計(jì)算對應(yīng)的RGB值,以點(diǎn)精靈的方式在斷面處顯示出來。以下是詳細(xì)步驟介紹。

        3.1 三維任意斷面數(shù)據(jù)計(jì)算

        目前許多高爐侵蝕預(yù)測系統(tǒng)只能提供固定位置的二維斷面示意圖,這給工程人員的監(jiān)控帶了許多不便之處。如某鋼鐵公司的提供的斷面顯示功能只能在0°、45°、90°和135°這四個(gè)位置提供溫度截面圖,其他角度溫度只能依靠工程人員的經(jīng)驗(yàn)進(jìn)行判斷。為了克服上述缺點(diǎn),筆者在新的三維預(yù)測模型中加入了可對任意位置提供三維斷面顯示的功能。

        假設(shè)通過數(shù)值計(jì)算得到的溫度數(shù)據(jù)一共有10個(gè)半截面,可將整個(gè)高爐爐缸(360°)分為[0,36)、[36,72)、[72,108)、[108,144)以及[144,180)共5個(gè)區(qū)間,并按1,2,…,5進(jìn)行編號(hào),然后按公式1確定斷面上某點(diǎn)的具體數(shù)值。

        (1)

        公式中TC為由計(jì)算得到的三維溫度矩陣,angle為用戶輸入的斷面角度,k為角度所在的區(qū)間序號(hào),data為用以保存數(shù)據(jù)的數(shù)組。計(jì)算出輸入角度位于哪兩個(gè)半截面之間后,利用兩個(gè)斷面處于相同位置的溫度數(shù)據(jù)TCk+1ij及TCkij進(jìn)行插值運(yùn)算,逐一計(jì)算出需要顯示斷面上每點(diǎn)的溫度數(shù)據(jù)。由此可以確定整個(gè)爐缸中任意一點(diǎn)的溫度值,為斷面顯示提供三維數(shù)據(jù)。

        3.2 三維模型顯示

        在3ds MAX中有很多現(xiàn)成的模型可以使用,如長方體、球體、圓柱體和比較有代表性的茶壺。高爐的爐底在立體上可以視作是一個(gè)對稱的凹槽,可以利用3ds MAX的車削功能將一個(gè)半斷面進(jìn)行旋轉(zhuǎn)360度得到一個(gè)完整的爐底形狀。

        假設(shè)通過計(jì)算生成半個(gè)斷面的溫度數(shù)據(jù)是一個(gè)670*675的矩陣,為了方便將每個(gè)溫度數(shù)據(jù)與高爐斷面空間上的點(diǎn)對應(yīng)起來,在3ds MAX中制作三維斷面模型時(shí)將模型斷面的長寬設(shè)定為長67*2,高67.5,以0.1為步長可以將斷面分為1340*675個(gè)區(qū)域,每個(gè)區(qū)域溫度與計(jì)算得到的溫度數(shù)據(jù)矩陣一一對應(yīng)。模型導(dǎo)出為.X文件后,利用Mesh類的FromFile()方法將該模型加載至程序,同時(shí)將模型置于世界坐標(biāo)系中的原點(diǎn)利于后續(xù)斷面坐標(biāo)計(jì)算。

        3.3 三維斷面顯示

        計(jì)算所得二維溫度數(shù)據(jù)與三維空間中的位置關(guān)系如圖3所示,為將數(shù)據(jù)映射到三維空間,首先固定Z軸坐標(biāo),然后將計(jì)算的溫度數(shù)組在XY平面中進(jìn)行轉(zhuǎn)置。偽代碼1完成此功能,其中i、j為溫度數(shù)據(jù)數(shù)組下標(biāo)。

        圖3 坐標(biāo)轉(zhuǎn)換示意圖

        偽代碼1:points[ParticleCount].Position=((j*0.1),(67-(i*0.1)),-0.1)

        為直觀地反映溫度高低,需要建立一個(gè)由溫度值到RGB值的映射,滿足溫度越高的部位越紅,溫度越低的部位越藍(lán)。對照某鋼鐵廠的溫度表,獲取紅(255,0,0)、黃(255,255,0),綠(0,255,0)、青(0,255,255)、藍(lán)(0,0,255)、黑(0,0,0)對應(yīng)的溫度,將這6個(gè)溫度作為端點(diǎn)將整個(gè)溫度范圍劃分成5個(gè)區(qū)間。對位于某一區(qū)間內(nèi)的溫度數(shù)據(jù)利用其區(qū)間兩端點(diǎn)對應(yīng)的RGB值進(jìn)行線性插值計(jì)算,以R分量為例,利用公式2進(jìn)行計(jì)算獲得某點(diǎn)的R值。

        (2)

        其中T為該點(diǎn)的溫度值,Tb、Ta分別為所在區(qū)間端點(diǎn)的溫度值,Ra、Rb為該區(qū)間兩端點(diǎn)R分量的值。同理確定該點(diǎn)的G、B值,最終得到漸變過渡的顏色效果。在偽代碼1后加入一函數(shù)Tem2RGB完成此功能。

        在渲染過程中記錄監(jiān)控系統(tǒng)是否處于斷面顯示狀態(tài),如果是則渲染斷面模型,否則渲染完整模型,并將計(jì)算獲得的粒子渲染到斷面表層加以顯示。為顯示頂點(diǎn)自身顏色,需要關(guān)閉場景中的燈光。

        試驗(yàn)中指明了粒子大小、數(shù)量、格式以及粒子緩存等信息,當(dāng)觀察點(diǎn)離原點(diǎn)越近粒子越小,反之則越大,符合人的視覺規(guī)律,避免出現(xiàn)粒子覆蓋斷面不完全或者超過斷面邊界的現(xiàn)象。

        4 實(shí)例

        本文的實(shí)驗(yàn)環(huán)境為Intel(R) Core(TM) i5 M430 2.27GHz處理器,3GB RAM,ATI Mobility Radeon HD 4350 (512MB)顯卡,開發(fā)環(huán)境為VS 2013。渲染效果如圖4所示,可以對模型進(jìn)行旋轉(zhuǎn),在不同角度查看斷面溫度分布。

        圖4 三維渲染效果圖

        以完成一幅圖片渲染耗時(shí)為目標(biāo)與某鋼鐵企業(yè)目前使用的系統(tǒng)進(jìn)行速度對比測試,測試結(jié)果如表1所示。由表1可知,利用本文方法大幅度提高了繪制斷面所需時(shí)間,平均耗時(shí)為某鋼鐵企業(yè)使用的系統(tǒng)的1/800。

        表1 斷面渲染速度對比

        5 結(jié)束語

        本文提出基于DirectX模型進(jìn)行切割的方法并用于高爐斷面中為目前高爐侵蝕預(yù)測系統(tǒng)中關(guān)鍵部分—斷面顯示提供了一種更優(yōu)的方案。利用該方法可以快速地對高爐斷面進(jìn)行模型渲染,在提供更強(qiáng)大功能和更好顯示效果的同時(shí)大幅減少斷面繪制所消耗的時(shí)間,同時(shí)本文提出的方法對于其他需要利用DirectX繪制模型內(nèi)部的場景也有一定的參考價(jià)值。

        [1]張繼超,馬洋洋,董塞漠.基于C#和DirectX的三維虛擬校園構(gòu)建探討[J].測繪工程,2015,(1):44-47.

        [2]楊鵬,李業(yè)麗,等.一種新的加載展示3D模型的方法[J].北京印刷學(xué)院學(xué)報(bào),2016,(4):46-50,55.

        [3]杜旭,黃亞明.基于高爐冷卻壁熱流強(qiáng)度的爐缸爐底侵蝕研究[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2017,(3X):212-213,221.

        [4]江建國,溫少營,張瑞楠.基于雙緩沖技術(shù)的GDI+無閃爍繪圖[J].計(jì)算機(jī)應(yīng)用,2012,32(S2):136-139.

        猜你喜歡
        利用方法模型
        一半模型
        利用min{a,b}的積分表示解決一類絕對值不等式
        重要模型『一線三等角』
        利用一半進(jìn)行移多補(bǔ)少
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        利用數(shù)的分解來思考
        Roommate is necessary when far away from home
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        国产精品av免费网站| 国产自偷自偷免费一区| 久久国产精品久久精品国产| 日韩欧美精品有码在线观看| 手机在线免费观看的av| 少妇夜夜春夜夜爽试看视频| 中文字幕有码无码av| 99国产精品无码专区| 无码喷潮a片无码高潮| 激情偷乱人成视频在线观看| 精品久久久久久无码不卡| 成人一区二区三区蜜桃| 少妇被黑人整得嗷嗷叫视频| 中文字幕在线亚洲日韩6页| 人妻少妇精品视中文字幕国语| 亚洲аv天堂无码| 在线观看黄片在线播放视频| 亚洲精品有码日本久久久| 人妻少妇精品无码专区动漫| 最新国产拍偷乱偷精品| 国产av一区二区内射| 精品无码国产一区二区三区麻豆| 日韩成人大屁股内射喷水| 亚洲韩国在线| 91精品国产高清久久福利| 人妻少妇中文字幕在线| 中文字幕在线播放| 成人午夜视频一区二区无码| 日本黄网色三级三级三级| 欧美综合天天夜夜久久| 亚洲av成人无码网站…| 久久精品国产亚洲一区二区| 国产免费人成视频在线观看播放播 | 日本怡春院一区二区三区| 国产日b视频| 国内精品久久久久影院蜜芽 | 欧美午夜理伦三级在线观看| 国产永久免费高清在线| 国产啪精品视频网站丝袜| 无码AV无码免费一区二区| 亚洲一区二区三区激情在线观看|