999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VTK的系留氣球建模及可視化技術研究

2022-11-24 07:21:46李佩琳
西安航空學院學報 2022年3期
關鍵詞:引擎可視化

呂 韻,李佩琳

(中國電子科技集團公司第三十八研究所 浮空平臺部,合肥 230088)

0 引言

可視化可以理解為運用圖像處理技術和計算機圖形學,將科學計算中的數據轉換成圖像數據,在顯示屏上顯示并可以進行交互處理的方法和技術[1]。隨著計算機技術的發展和算法效率、精度的不斷提高,可視化技術已經廣泛應用到產品設計、醫學、地球科學、建筑等領域。

隨著AI技術的發展,三維的可視化技術已應用于多個領域[2-6]。常用的實現三維可視化技術,主要有[7]:(1)直接在現有三維軟件上進行建模;(2)在現有的三維引擎上進行開發;(3)源代碼開放的可視化開發工具VTK(Visualization Toolkit)。VTK基于Open-GL工具包,具有移植性好、開放源代碼等優點,是目前應用廣泛的可視化開發工具。

系留氣球是系在地面絞車并可控制其在大氣中飄浮高度的一種重要的浮空器,系留氣球一般由主氣囊、尾翼、副氣囊、整流罩等部分組成,氣球可以攜帶設備升空,并進行長時間空中系留,可實現長時間、遠距離的監控或探測[8-9]。為開發系留氣球的設計軟件,進一步優化系留氣球的設計流程,本文使用C++語言,以Qt作為界面開發平臺,結合VTK可視化庫,構建幾何數據進行軟件開發的探索,實現了系留氣球的幾何模型和三維可視化顯示。

1 VTK可視化

如前所述,VTK以其移植性好、源碼開放等優點應用廣泛。實際上,VTK的工具包結構能嵌入任何一種開發工具中,用戶可對開發的全程進行控制,進行專業應用的開發。VTK已經在類庫中集成了大量的可視化算法,用戶可直接使用,與此同時,VTK允許開發人員根據需要在已有的算法和結構之上加入自己的算法和接口[10-11]。

VTK可視化涉及兩個重要術語:渲染引擎和可視化管線。其中,渲染引擎主要為數據從模型生產圖像的過程;可視化管線為獲取或創建數據、處理數據以及將數據寫入文件或者將數據傳遞給渲染引擎進行顯示的運行結構,包括數據對象、處理對象和數據流方向三個要素[12]。VTK可視化流程如圖1所示。

2 幾何構建

VTK幾何數據表達由幾何結構和拓撲結構組成,幾何結構描述對象的空間位置關系,拓撲結構描述對象的構成形式。VTK構建單個幾何體可將其分解成多個三角形(或四邊形)單元,分解的單元節點構成數據集,連接節點構成數據集的拓撲結構形成幾何體的表面。這樣所得數據集可直在VTK中進行處理和可視化。

2.1 外形創建

VTK提供了一些簡單幾何體的生成函數,對于一些復雜的造型需要開發者自定義幾何外形數據。復雜的造型其幾何形狀也是由點、線、面構成的。系留氣球的設計軟件開發也離不開點、線、面的創建與操作。

(1)創建點。點是組成所有幾何模型的基礎,且所有數據存儲的基礎都是基于點的存儲。首先計算幾何外形表面上點的坐標,創建點數據。在VTK中,用vtkPoints類來存儲點,利用InsertNextPoint插入下一個點的坐標,每個點會按插入順序生成ID值vtkIdType。系留氣球創建點具體實現代碼如下:

//聲明一個vtkPoints指針

vtkSmartPointerpoints=vtkSmartPointer::New();

//插入點坐標x,y,z

for(i=0;i

points->InsertNextPoint(x,y,z);

(2)創建四邊形單元。將四個點的坐標按右手螺旋法則外法向量的方向連接起來,即可創建四邊形單元。在VTK中用vtkCellArray存儲單元,利用InsertNextCell插入下一個單元,每個單元中用InsertCellPoint來插入單元中點的連接順序。系留氣球創建四邊形單元具體實現代碼如下:

//聲明一個vtkCellArray指針

vtkSmartPointercells=vtkSmartPointer::New();

//插入一個四邊形單元

cells->InsertNextCell(4);

//依次插入需要連接的點的ID

cells->InsertCellPoint(ID1);

cells->InsertCellPoint(ID2);

cells->InsertCellPoint(ID3);

cells->InsertCellPoint(ID4);

(3)創建多邊形數據集。VTK中多邊形數據集vtkPolyData是應用非常廣泛的一種數據類型,是數據與算法之間的橋梁。該數據集由各種單元構成,后續對幾何體的一些算法(切割、合并等)都要通過vtkPolyData實現。系留氣球創建多邊形數據集具體代碼如下:

//生成幾何體的PolyData數據

vtkSmartPointerdata=vtkSmartPointer::New();

data->SetPoints(points);

data->SetPolys(cells);

2.2 曲面操作

當幾何形狀出現相交時,需要對幾何外形進行修剪,VTK中常用的是vtkClipPolyData切割類和vtkAppendPolyData合并類。當數據需要進行光滑、三角化時,通常使用過濾器Filter來處理。這些類的輸出為vtkPolyData類型的數據,將最終處理好的數據傳入映射器Mapper就完成了數據對象的生成和處理。系留氣球的曲面操作如下:

(1)切割。截留氣球的切割代碼如下:

vtkSmartPointerclip=

vtkSmartPointer::New();

clip->SetClipFunction(implicitFunction);

clip->SetInputData(data);

clip->Update();

(2)數據合并。截留氣球的數據合并代碼如下:

vtkSmartPointerappend=

vtkSmartPointer::New();

append->AddInputData(clip->GetOutput());

append->AddInputData(data);

append->Update();

3 三維模型的可視化

經過以上的創建與操作處理,就可以把映射器傳遞給渲染引擎進行顯示和交互。

3.1 三維模型顯示

根據圖1所示的可視化流程,數據流依次通過vtkActor、vtkRender、vtkRenderWindow。

(1)vtkActor用于在場景中描述一個對象的屬性,包括一個物體的顯示模式、顏色、透明度等。系留氣球的實現代碼如下:

vtkSmartPointeractor=vtkSmartPointer::New();

actor->SetMapper(mapper);

actor->GetProperty()->SetRepresentationToSurface();

actor->GetProperty()->SetColor(0,0,1);

actor->GetProperty()->SetOpacity(0.8);

(2)vtkRenderWindow用于創建渲染物體的窗口,vtkRenderer則是渲染窗口的渲染器。渲染窗口可以方便用戶對場景中的圖形進行操作和控制,如燈光和觀察物體的視角等。每一個物體最終都會渲染到渲染窗口中[13]。系留氣球的實現代碼如下:

vtkSmartPointerrender=vtkSmartPointer::New();

render->AddActor(actor);

vtkSmartPointerrenwin=

vtkSmartPointer::New();

renwin->AddRenderer(render);

3.2 交互顯示模塊

vtkRenderWindowInteractor提供用戶對渲染窗口中的物體進行拾取、縮放、平移等交互操作。利用Qt的信號槽機制,可以很方便的用Qt控件實現對物體的操作。在VTK中也提供了多種簡單交互操作的類,而且可以通過繼承vtkCommand類的方式自定義回調函數。

3.3 系留氣球可視化實例

在Qt平臺上,結合VTK庫使用C++語言開發系留氣球三維可視化平臺,主界面如圖2所示。通過讀取輸入參數,計算系留氣球結構的點數據和單元數據,然后運用本文的幾何建模和可視化方法,定義系留氣球外形,最后通過VTK渲染引擎實現系留氣球的可視化。

利用Qt控件可實現對系留氣球顯示屬性的控制,隱藏除主、副氣囊之外的其他部分,如圖3所示;更改副氣囊的顏色和主氣囊透明度,如圖4所示。

利用Qt控件和vtkImplicitPlaneWidget類實現切割交互功能,用戶既可以通過控件設置平面參數來定義切割平面,也可以在渲染窗口中直接拖動來確定平面,同時會顯示當前平面的參數。系留氣球的切割交互界面如圖5所示。

4 結論

根據VTK功能和可視化機制,基于VTK幾何構建和三維模型可視化方法在Qt平臺上使用C++語言進行系留氣球設計與優化軟件的開發。通過創建點、四邊形單元、多邊形數據集和曲面操作進行幾何構建,并通過三維可視化技術構建系留氣球三維可視化平臺,所建平臺包括顯示控制和截面切割等功能。對系留氣球三維可視化平臺的測試結果表明,所建平臺滿足系留氣球的三維可視化要求,可進一步用于系留氣球的性能分析軟件開發。

猜你喜歡
引擎可視化
以學促干 挺膺擔當 激活砥礪前行的紅色引擎
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
三生 三大引擎齊發力
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 亚洲午夜国产精品无卡| 在线免费亚洲无码视频| 九九久久99精品| 欧洲精品视频在线观看| 大陆国产精品视频| 亚洲色图欧美在线| 国产av一码二码三码无码| 国产97视频在线| 国产另类乱子伦精品免费女| 欧亚日韩Av| 亚洲成A人V欧美综合| 久久亚洲精少妇毛片午夜无码| 国产午夜在线观看视频| 亚洲精品国产综合99| 亚洲性网站| 国产免费福利网站| 99国产精品免费观看视频| 亚洲美女高潮久久久久久久| 国产婬乱a一级毛片多女| 97视频精品全国免费观看| 国产福利一区二区在线观看| 亚洲视频色图| 54pao国产成人免费视频| 久久综合色天堂av| 国产黄网永久免费| 国禁国产you女视频网站| 色婷婷啪啪| 国产在线观看精品| 首页亚洲国产丝袜长腿综合| 伊人久久综在合线亚洲2019| 国精品91人妻无码一区二区三区| 久久国产亚洲欧美日韩精品| 99草精品视频| 亚洲第一黄色网址| 狠狠色成人综合首页| 国产精品嫩草影院视频| 成人午夜福利视频| 亚洲婷婷丁香| 久久精品国产999大香线焦| 色吊丝av中文字幕| 激情综合婷婷丁香五月尤物| 成人福利在线观看| 成人日韩精品| 国产成人精品一区二区免费看京| 伦精品一区二区三区视频| 欧美成人午夜视频| 国产精品欧美日本韩免费一区二区三区不卡 | 久久特级毛片| 97在线免费| 国产成人免费高清AⅤ| 欧美在线精品怡红院| 国产精品七七在线播放| 国产爽妇精品| 国产成人综合久久精品尤物| 中文字幕亚洲专区第19页| 久久国产高潮流白浆免费观看| 大香伊人久久| 97se亚洲综合在线韩国专区福利| www精品久久| 亚洲黄色激情网站| 天天色综网| 免费在线观看av| 视频二区亚洲精品| 国产女人在线| 中文字幕无码av专区久久| 91娇喘视频| 国产免费精彩视频| 国内精品久久久久鸭| 制服丝袜一区二区三区在线| 日韩精品无码一级毛片免费| 麻豆国产精品视频| 久久免费看片| 青青青草国产| 亚洲h视频在线| 亚洲欧美另类日本| 熟妇无码人妻| 国产伦精品一区二区三区视频优播| 国产午夜无码片在线观看网站 | 亚洲精品第一页不卡| 国产成人精品免费av| 久久国产精品77777| 亚洲天堂日韩在线|