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

基于WPF的三維仿真系統的研究與應用

2016-01-02 09:18:47尚旭明張立成
計算機技術與發展 2016年9期
關鍵詞:模型系統

尚旭明,張立成

(長安大學信息工程學院,陜西西安 710064)

基于WPF的三維仿真系統的研究與應用

尚旭明,張立成

(長安大學信息工程學院,陜西西安 710064)

為了快速開發三維模型,通過研究Windows中基于XAML技術的WPF編程方法,實現對實體的應變能力的檢測以及直觀顯示效果。通過建立的WPF模型數據對采集數據或者直接導入3DMAX模型進行轉換,然后對模型應用紋理、覆蓋頂點、三角定義模型外觀以及投影變換技術實現三維圖像,從而確定了模型特征。對模型進行組合以及視點變化,實現模型的多視角查看,通過前幀顯示,后幀繪制技術實現動態顯示三維模型的流暢性,最終建立實物的三維監測系統。該方法已經成功應用于三維仿真監測系統中,基于WPF編程不僅通過仿真計算的模擬和圖形顯示分離的策略提高了系統的交互性,而且采用XAML技術實現開發速度快,易于實現3D模型的動態展示,具有很好的效果。

WPF;XAML;三維仿真;監測系統

0 引言

隨著計算機圖形學技術的發展,近年來三維仿真技術成為國內外關注的熱點,人們對于計算機仿真的要求也越來越高,特別是GIS、虛擬現實、增強現實、漫游視景仿真等技術,將計算機視覺模擬逐漸帶入了一個更高的水平[1]。三維仿真技術簡單來說就是用計算機技術模擬一個真實系統的技術,通過模擬系統來發現、解決以及優化真實系統中出現的問題。三維仿真技術被廣泛應用于城市規劃、地產行業、電子地圖、娛樂教育、虛擬現實[2]等多個領域。在過去,三維場景的計算機呈現需要掌握圖形學的基本知識,Direct3D或OpenGL編程技術,通過編寫大量的代碼才能實現,是一件非常復雜的事情[3]。現在使用WPF顯示三維場景非常簡單,甚至基于WPF中XAML[4]技術不需要寫太多的代碼就可以實現一個簡單的三維場景,以及與三維場景進行交互。

基于三維仿真技術的需求,文中提出一種基于WPF的三維仿真監測系統的研究與實現方案,以實例的形式介紹如何使用WPF呈現一個三維場景,驗證了該方法的直觀性、有效性。

1 WPF簡介

WPF(Windows Presentation Foundation)是微軟新一代圖形系統,屬于.NET Framework 3.0的一部分,為用戶界面、2D/3D圖形、文檔和媒體提供了統一的描述和操作方法[5],是一個理念先進的gui庫。它提供了超豐富的.NET UI框架,3D視覺效果和強大無比的控件模型框架[6]。微軟還提供了專門的界面開發語言-XAML(eXtensible Application Markup Language,可擴展應用程序標記語言)[7]。通過在XAML標記中添加可見UI元素,如按鈕、文本框等,然后通過代碼轉換文件將UI的定義與運行時的邏輯完全分開。XAML與大多數標記語言不一樣,一般標記語言是與后備類型系統沒有直接關系的解釋語言,而XAML語言直接以程序定義的一組特定的后備類型來表示對象的實例化。XAML可以對整個界面布局進行合理調整,而且簡化用戶界面的開發過程,開發人員可以通過XAML對用戶界面進行定制。一般情況下,都是通過使用相關的軟件來制作 XAML文件。Microsoft Expression Blend是常用生成XAML的工具。XAML所能做的也可以用代碼實現[8]。使用XAML來實現WPF 3D仿真模型有以下優點:

(1)代碼編寫簡單、易讀性高;

(2)可以使用工具生成XAML文件;

(3)XAML提供了一種便于擴展和定位的語法來定義和程序邏輯分離的用戶界面[9],XAML中界面表現和邏輯功能的分離使得界面開發和功能開發代碼分離,有利于開發團隊的合理分工,提高了開發效率。

2 系統結構

在Windows平臺上,以vs2010為開發工具進行WPF編程,可以通過直接采集數據建立實物模型,或者通過3DMAX建立模型,然后將3D模型仿真數據轉換或者導入到WPF中,從而完成模型建立。接著給模型添加色彩、材質、紋理等屬性,以及確定合適的視點,再對模型進行投影變換,并動態仿真監測系統中變量的變化,從而實現對實體和過程的三維仿真。系統總體結構如圖1所示。

3 具體功能實現

3.1 模型建立

在三維工業仿真中,要對許多復雜的模塊建立3D模型。對于三維圖像,可以利用WPF庫提供的基本幾何體進行建模。常用的三維模型數據是通過多邊形來構建出實體模型的外觀,而且多邊形的數據信息以文件的形式存儲。模型的數據主要包括四個關鍵的數據集合:

(1)頂點集:由實物的頂點坐標及其法向量構成的集合;

(2)朝向集:朝向是指物體相對于光源的方向,根據這些朝向來計算三維模型的明亮度,面向光源的圖面比背離光源的圖面表現明亮;

(3)紋理集:確定紋理繪制方式的坐標映射到網格的頂點;

(4)相關三角形列表集:實物網格都是由很多三角形構建的,所以要保存每一個三角形頂點,即構成了三角形集合。

因為通過WPF和OpenGL來創建精細實體模型相對復雜,所以文中采用3DMAX構建實物模型,然后將模型導入WPF中。OpenGL導入模型文件比較復雜,需要編寫特定的程序才可以導入,因此每次導入模型都很耗時;與 OpenGL相比,WPF可以直接將3DMAX的.OBJ文件轉換為XAML文件,然后表示為模型數據。

3.2 色彩、光照以及紋理的處理

對網格應用紋理、覆蓋頂點以及三角形定義的模型外觀,通過照相機照明及投影變換來實現三維對象。在二維中通過Brush類來設置區域的顏色、圖形或漸變等功能。三維對象不僅僅是應用實體外觀的顏色和圖案,而且要實現三維效果,需要照明模型。實際生活中,實物的外觀、形狀是不同的,因此它們對光的反射以及吸收也是不同的,一些實物可以吸收光,使其顯示暗淡,一些實物反射光,使其顯得明亮。為了達到這樣的效果,需要對三維圖像應用畫筆。WPF使用Materi-al[10-11]抽象類來定義模型圖面的特征。Material類用來確定三維模型外觀特性,它有很多繼承類,每個繼承子類有一些共有的屬性,比如 SolidColorBrush、Tile-Brush或VisualBrush的Brush屬性[12-13]。通過紋理覆蓋使得網格外觀更像3D實物,通過MeshGeometry3D 的Normals屬性和TextureCoordinates屬性設置3D模型外觀紋理。

三維建模中的光與生活中的光類似,光照到的面可見。也就是說,光源的位置確定了場景中模型表現的明亮或者暗淡。WPF中的光對象包含了設置光種類和陰影效果的屬性,這些屬性值是根據各種光的表現創建的,從而可以看到創建的三維模型,還可以通過轉換場景中放置的光源并對光源屬性進行動畫處理,實現三維對象的顯示與交互。光源屬性包括光源的位置、顏色、朝向和范圍大小。

<ModelVisual3D.Content>

<AmbientLight Color="#333333"/>

</ModelVisual3D.Content>

DirectionalLight myDirLight=new DirectionalLight();

myDirLight.Color=Colors.White;

myDirLight.Direction=new Vector3D(-3,-4,-5);

modelGroup.Children.Add(myDirLight);

3.3 三維實體在二維屏幕上顯示的變換過程

三維實體是在三維坐標中定義的,但是三維物體要在二維的顯示器上顯示,需要經過一些變換。所以將三維實體的三維坐標映射到二維屏幕上,需要經過以下步驟:

3.3.1 視點變換

視點變換是指調整視點的位置,WPF中的視點就像拍照攝像機的位置,視點對應的是三維場景。可以通過改變實體的位置,也可以通過視點變換即調整視點的位置,來改變觀察物體的角度和形狀。

XAML文件中的相機位置設置如下:

<Viewport3D.Camera>

<OrthographicCamera x:Name="mainCamera"Width="3.5"

FarPlaneDistance="10"

NearPlaneDistance="0.125"

LookDirection="0,0,-1"

UpDirection="0,1,0"

Position="0,0,1"/>

</Viewport3D.Camer>

還可以通過mainCamera.Position屬性設置視點的位置。

3.3.2 模型變換

在WPF中,模型變換(Modeling Transformation)是指對物體位置、方向的設置,是從模型坐標系到世界坐標系的轉換。模型坐標系是指模型繪制時使用的坐標系。當模型發生旋轉平移等變化時,模型坐標系本身不會變化,變化的是模型在世界坐標系中的位置。世界坐標系是指以屏幕中心為原點(0,0,0),用來描述場景的坐標,這個坐標系可以用來描述物體及光源的位置。世界坐標系是不會被改變的。可以通過保持相機位置不變,將物體移動到適當位置來進行模型變換,也可以固定物體不變,移動相機位置從而實現模型變換。不管使用哪種方式,物體是在當前的繪圖坐標系中構建,物體的位置由當前的繪圖坐標系決定,所以模型變換歸根到底就是對當前繪圖坐標系位置的變換,這一變換是在世界坐標系下進行的。實體位置的變換可以通過模型的旋轉、平移和縮放來實現。

WPF中與模型變換相關的類為:

RotateTransform3D myRotateTransform=new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0,1,0),90))

第一個參數為旋轉中心,第二個參數為旋轉角度。3.3.3 透視投影

如人眼所看,離眼睛近的物體顯得大,而離眼睛遠的物體顯得小。透視投影通常用于反映現實的真實性,比如動畫、視覺仿真等。投影包括透視投影(Perspective Projection)和正視投影(Orthographic Projection)兩種[14]。WPF投影設置是通過設置攝像機類型實現。Orthographic Camera(正射攝像機)是指沒有透視效果,即三維模型到二維圖像的正投影,正投影的邏輯寬度在左,右,前,后,頂,底都是相等的;而Perspective Camera(透視攝像機)指實現三維模型到二位模型的透視投影,也就是看到的實體前端和后端的可視寬度不同。

3.4 實時仿真

3D仿真檢測系統是指根據實際情況實時檢測真實世界實體受到外界影響發生的變化。此系統中實時顯示物體的應變值,是指物體在受到外界環境影響下的內部結構所表現的狀態。根據傳感器實時采集的數據,對3D模型的數據進行重新處理,生成當前時刻的模型數據,根據數據重新設置模型的材質,實現3D模型的實時動態顯示。動態顯示就涉及UI刷新問題,在Windows Form程序開發過程中,更新UI非常簡單,使用application.DoEvents就可以更新。雖然WPF沒有提供這樣的功能,但是可以通過下面兩種方式實現UI刷新:

(1)通過引入system.windows.forms.dll動態庫就可以直接調用application.DoEvents。

(2)使用backgroundworker來實現異步更新UI,通過backgroundworker來執行需要消耗很長時間的工作,然后異步更新UI內容。實現原理是通過建立一個新的線程來執行消耗大量時間的工作,此線程執行完畢后,通過Dispatcher來更新UI,WPF會根據Dispatcher的優先順序來更新UI。

4 仿真結果顯示及分析

在WPF的理論基礎上,實現了基于WPF的3D仿真監測系統。WPF能夠很好地實現三維仿真。基于WPF的3D仿真監測系統的分析有以下幾點:

(1)WPF仿真計算的模擬和圖形顯示分離的策略便于開發人員對項目的開發,提高了系統的交互性。

(2)結果的顯示在實體應變上以不同顏色呈現,形象直觀,畫面清晰。

(3)模型顯示操作支持多種視圖效果,可以全方位地預覽和設計模型,同時支持上、下、左、右、前、后等運動操作,有利于實體的改進與優化。

(4)對于同樣的3D模型不需要進行重新構建和導入,可以把之前導入的模型添加到模板,從而實現模型復用,有利于快速開發。

5 結束語

文中著重論述了在Windows環境下基于WPF的3D模型仿真的研究與實現,介紹了通過XAML技術實現界面與邏輯完全分離,可以使用少量的代碼實現,開發過程簡單,分析了構建3D仿真監測系統中涉及到的關鍵技術。該方法已應用于三維仿真監測系統中。結果表明,基于WPF的三維仿真系統的研究與實現具有很好的效果。

[1] 曲 嘯.基于OpenGL的空間仿真可視化技術研究[D].西安:西安電子科技大學,2013.

[2] 彭曉軍,李 焱,賀漢根.3Ds模型在虛擬現實幾何建模中的應用[J].計算機仿真,2003,20(3):52-55.

[3] 郭成操.圖形仿真加工系統的研究與開發[D].成都:四川大學,2003.

[4] MacVittie L A.XAML in a Nutshell[M].[s.l.]:O’Reilly Media,2006.

[5] 張景仁.WPF模擬三維消防場景的技術實現[J].武警學院學報,2009(6):87-89.

[6] Anderson C.WPF核心技術[M].朱永光,譯.北京:人民郵電出版社,2009.

[7] 李 響.葵花寶典:WPF自學手冊[M].北京:電子工業出版社,2010.

[8] 徐 寧,杜維剛.對 Windows Vista中新一代標記語言XAML的研究[J].電腦知識與技術,2007,1(3):774-775.

[9] Evjen B,Hanselman S,Rader D.ASP.NET 2.0高級編程特別版[M].北京:清華大學出版社,2007.

[10]Sells C,Griffiths I.Programming WPF[M].[s.l.]:O’Reilly Media,2007.

[11] Eisenberg R,Bennage C.Teach yourself WPF in 24 hours [M].American:SASM,2008.

[12] MacDonald M.Pro WPF in C#2010:windows presentation foundation in.NET 4[M].[s.l.]:Apress,2014.

[13] Andrade C,Livermore S,Meyers M,et al.Professional WPF programming:NET developmentwith the windows presentation foundation[M].[s.l.]:Wiley Publishing,2007.

[14]鐘紅梅,簡興祥,彭瑪麗,等.三維可視化物探數據分析系統研究[J].硅谷,2014(22):41-42.

Research and Application of 3D Simulation System Based on WPF

SHANG Xu-ming,ZHANG Li-cheng
(School of Information Engineering,Chang’an University,Xi’an 710064,China)

In order to speed up the development of 3D model,the detection ability of the strain and intuitive display entity is realized by studying the WPF programming method based on XAML technology in Windows.The data of building the WPF model is transformed for acquisition data or into 3DMAX,then texture,covering vertices,triangles appearance of the model,and projection transformation technique is applied to realize 3D image for determining the model features.Multi-view model is realized by model combination,as well as viewpoint changes.Through the front frame display,the back frame drawing technology,the dynamic display fluency of three-dimensional model is realized.A kind of three-dimensional monitoring system is established finally.The method has been successfully applied in the 3D simulation and monitoring system,programming based on WPF not only improves the interactivity of the system through the strategy of separation between simulation calculation and graphics display,but also accelerates the development speed with easy realization by using XAML technology,which has a very good effect.

WPF;XAML;3D;monitoring system

TP302

A

1673-629X(2016)09-0039-04

10.3969/j.issn.1673-629X.2016.09.009

2015-12-04

2016-04-06< class="emphasis_bold">網絡出版時間:

時間:2016-08-23

國家自然科學基金資助項目(51278058);中央高校基本科研業務費專項資金項目(310824151033)

尚旭明(1990-),男,助教,研究方向為數字圖像處理。

http://www.cnki.net/kcms/detail/61.1450.TP.20160823.1359.050.html

猜你喜歡
模型系統
一半模型
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
3D打印中的模型分割與打包
主站蜘蛛池模板: 美女国内精品自产拍在线播放| 国产精品不卡片视频免费观看| 久青草免费在线视频| 欧美在线综合视频| 99在线观看视频免费| 91探花在线观看国产最新| 国产在线观看99| 这里只有精品在线| 久久精品午夜视频| 粉嫩国产白浆在线观看| 亚洲无码视频喷水| 亚洲无线视频| 黄色网在线| 精品一区二区三区视频免费观看| 国产网友愉拍精品| 99热这里只有免费国产精品| 2018日日摸夜夜添狠狠躁| 国产精品久久久久久久久久久久| 久久婷婷六月| 久久黄色免费电影| 日本久久网站| 国产屁屁影院| 欧美啪啪精品| 在线看片中文字幕| 久99久热只有精品国产15| 色婷婷丁香| 老司机久久99久久精品播放 | 国产成人高清在线精品| 亚洲AV成人一区二区三区AV| 2020国产精品视频| 亚洲综合第一区| 国产爽爽视频| 国产91九色在线播放| 亚洲中文字幕无码爆乳| 亚洲综合片| 国产成人精品三级| 天堂成人在线视频| 欧美精品一区在线看| 国产尤物在线播放| 国产精品大尺度尺度视频| 大陆国产精品视频| 色婷婷天天综合在线| 国产第四页| 色网站在线视频| 九九视频免费看| 国产精品亚欧美一区二区三区 | 人妻中文久热无码丝袜| 久久人人爽人人爽人人片aV东京热| h网址在线观看| 欧美精品aⅴ在线视频| 成人va亚洲va欧美天堂| 精品欧美视频| 欧美日韩一区二区在线免费观看| 国产最爽的乱婬视频国语对白| 欧美成人一级| 国产精品久久久久久久久久98| 精品无码一区二区三区电影| 日韩天堂网| 中文成人在线| 67194亚洲无码| 2024av在线无码中文最新| 在线欧美一区| 国产精品不卡片视频免费观看| 国产欧美在线观看精品一区污| 国产不卡网| 精品视频福利| 亚洲综合欧美在线一区在线播放| 国产在线观看精品| 成年A级毛片| 久久久久免费精品国产| 美女无遮挡免费视频网站| 91精品专区国产盗摄| 中文字幕亚洲另类天堂| 97国产成人无码精品久久久| 色亚洲成人| 麻豆精品在线| 成人欧美日韩| 欧美在线网| 免费看av在线网站网址| 日本少妇又色又爽又高潮| 91无码视频在线观看| 国产人成乱码视频免费观看|