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

基于MeshViz的動態交互式圖例技術研究

2013-09-26 03:26:20聶永丹趙建民侯俊龍東北石油大學計算機與信息技術學院黑龍江大慶163318
長江大學學報(自科版) 2013年22期
關鍵詞:定義用戶

張 巖,聶永丹,趙建民,侯俊龍 (東北石油大學計算機與信息技術學院,黑龍江 大慶 163318)

Open Inventor是目前世界上使用最廣泛的面向對象的繪圖軟件接口,允許用戶通過搭積木的方式來構建復雜的三維場景,使得用戶只需花費很少的時間就可以構造出復雜的三維場景[1]。Open Inventor中根據不同行業的需求提供了若干擴展模塊,其中MeshViz XLM擴展模塊提供了強大的應用科學領域中模型網格繪制、提取和數據匹配功能,并且包含了高級的數據可視化設計組件、復雜曲面、三維統計圖等多種可視化對象,DialogViz擴展模塊提供了可以與場景交互的編程接口,使用DialogViz節點可以控制和操作場景中的對象,并且DialogViz節點的使用與其他Open Inventor的使用方式沒有區別[2]。下面,筆者對基于MeshViz的動態交互式圖例技術進行了研究。

1 使用MeshViz構造圖例

1.1 MeshViz圖例節點

MeshViz提供的圖例節點類型是MoLegend,它能以一個矩形的方式給出當前色譜的彩色圖例,在這個矩形圖例上可以設置圖例的名稱、最大值與最小值等,同時利用MoLegend提供的編程接口可以實現展示形狀、方向、顏色映射類型的動態設定等功能。

1.2 MeshViz顏色映射節點

顏色映射節點會根據一個數值的大小計算該數值對應的顯示顏色,相應的顏色就會在一個數據集合對應的數據體表面上顯示出來,顏色映射節點實現了一種簡單的顏色參照表的定義方式,在MeshViz中提供了4種類型的顏色映射節點。

1)MoLevelColorMapping節點 該節點定義了具有N個數量級的數據集合和與之對應的N-1種顏色,它的映射方法是如果某個數據v值的在Vk≤v≤Vk+1范圍內,則該數據對應的屬性將被映射到顏色Ck上去。

2)MoLinearColorMapping節點 該節點為數據與顏色集合定義了一種線性映射的方式,假設某個數據v值的在Vk≤v≤Vk+1范圍內,它對應的顏色Ck取決于(Vk,Ck)和(Vk+1,Ck+1)的線性映射關系。

3)MoPredefinedColorMapping節點 該節點是一種預定義的色譜,使用MoPredefinedColorMapping色譜數值對應的顏色與預定義的顏色范圍相匹配,Open inventor根據不同業務的需要提供了9種預定義色譜類型,用戶可以直接從中選用合適色譜即可[3]。

4)MoCustomColorMapping節點 該節點是一個實現了MiColorMapping接口的類,必須實現的函數是getColor(),getColor()的作用是根據一個給定的數值轉成SbColorRGBA類型的數值,從而允許用戶實現任何方式的轉換函數。

1.3 等價數值節點

在數據映射過程中,色譜上每一種顏色和每一種屬性值相對應,利用不同顏色可以展示出多種不同屬性的效果,相應的與某一種顏色對應的數值叫做等價數值。通過定義等價數值可以設定需要展示數據的范圍,MeshViz提供了PbIsovaluesList和PoIsovaluesList 2種定義等價數值的類型,因此可以使用下列2種方式定義等價數值:①定義一個繼承自PoIsovaluesList類的子類,將該類的對象添加到場景中;②定義一個繼承自PbIsovaluesList的對象,調用setIsovaluesList()函數和可視化對象相關聯。在MeshViz可以方便地使用上述方法。

2 使用DialogViz交互

2.1 DialogViz初始化

DialogViz模塊中包括了SoTopLevelDialog、SoMenuBar和SoMenuPopup類型的節點,以及從SoDialogGroup派生的SoColumnDialog、SoRowDialog和SoTabDialog類型的節點。在交互接口程序中可以同時使用以上多種節點。DialogViz的初始化支持2種方式:既可以從程序中直接用代碼定義,也可以從已經定義好的文件中讀取。創建一個DialogViz窗口的步驟如下:①創建一個SoTopLevelDialog節點;②設置SoTopLevelDialog節點的屬性域;③創建窗口的子節點控件如按鈕,滑塊等;④將創建的子節點控件添加到SoTopLevelDialog節點中;⑤調用buildDialog()函數時,DialogViz窗口就會顯示到屏幕上。

2.2 DialogViz節點交互

Open Inventor中場景的交互采用回調函數方式[4],與之不同的是DialogViz采用Java語言類似的監聽機制,DialogViz中提供了一系列預定義的監聽類,通過監聽類就可以完成用戶事件的交互響應。建立一個監聽的步驟如下:①定義一個從預定義DialogViz接口類派生的監聽類;②在定義的監聽類中覆蓋父類的虛函數,如dialogPushButton()、dialogCheckBox()、menuRadioButtons()等函數;③將監聽類添加到場景中。

3 動態交互式圖例的實現

3.1 構造圖例

利用MeshViz模塊創建一個圖例需要進行如下步驟的操作:①初始化圖例節點,通過指定圖例大小、坐標以及標題和數值的位置來定義圖例節點;②在場景中插入PoDataMapping類型數據映射對象并與圖例節點關聯;③在場景中插入PoIsovaluesList類型等價數值對象并與圖例節點關聯 (可選);④指定圖例中所要顯示數據的最大值、最小值以及過渡數值。如果定義了數據映射節點對象或者等價數值節點對象,可以通過這2類節點圖例指定數值范圍;⑤將圖例節點添加到場景中。

采用模塊化程序設計思想,為方便其他模塊調用[4],筆者將動態交互圖例封裝在一個類mylegend中,圖例的初始化利用該類的默認構造函數實現,構造函數執行完畢后圖例保存在legendroot節點中。創建圖例關鍵代碼如下:

3.2 圖例的交互

1)控件定義 采用滑塊控件實現邊界顏色對應的數據值調節控制,利用check控件實現顏色映射方式的動態交互,DialogViz設置定義在iv文件中,其中滑塊控件的設置如下:

2)創建監聽 創建監聽的相關代碼如下:

3)將控件與監聽類關聯 將控件與監聽類關聯的相關代碼如下:

3.3 數據映射范圍及方式的動態實現

MeshViz提供的第1種數據映射方式PredefColorMapping是將每個屬性值映射到預定義的顏色范圍的方式,其特點是實現簡單,無需用戶干預,缺點是在某些情況下屬性的顏色值分布的不靈活,用戶修改顏色分布的難度大。為了用戶能夠自定義不同的顏色模式以及設置數據體某些屬性的顏色表示方式,可以采用MoLinearColorMapping映射方式,由此實現一種用戶自定義的圖例范圍及映射方式的動態設定。筆者在mylegend類中提供一個供外部模塊調用的public方法setmapvalue,該方法通過傳入數據范圍參數min、max來動態改變數據映射范圍,通過參數order來判斷用戶的數據映射方式是順序還是倒序,以此來改變映射方式。該函數的代碼描述如下:

動態交互式圖例程序運行界面分別如圖1和圖2所示。

圖1 自定義數據范圍順序映射方式圖例

圖2 自定義數據范圍反序映射方式圖例

4 結 語

利用Open Inventor中MeshViz和DialogViz擴展模塊實現動態交互式圖例類,根據用戶需求可以自定義數據映射范圍與映射方式。該方法實現簡便,便于用戶直觀理解模型的結構和分析模型特性。此外,由于采用了模塊化的設計思想,因而具有較強的擴展性,可以方便地與用戶的其他業務模塊集成。

[1]滕貽健,柴山,荊旭,等 .基于Open Inventor的虛擬駕駛仿真系統 [J].計算機應用,2009,29(s1):323-325.

[2]閻鋒欣,候增選,張定華,等.Open Inventor程序設計從入門到精通 [M].北京:清華大學出版社,2007.

[3]Wernecke J.The Inventor Mentor:Programming Object-Oriented 3DGraphics with Open Inventor,Release 2 [M].London:Addison-Wesley Publishing Company,1994.

[4]Ezust A,Ezust P.An Introduction to Design Patterns in C++ with Qt4 [M].New york:Prentice Hall,2006.

猜你喜歡
定義用戶
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風格”
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 午夜一区二区三区| 99精品在线视频观看| 国内精品免费| 国产黑丝一区| 国产又粗又爽视频| 国产精品分类视频分类一区| 日韩欧美国产三级| 97久久免费视频| 国产aaaaa一级毛片| 成人福利在线免费观看| 五月婷婷综合网| 亚洲中文制服丝袜欧美精品| 99精品免费欧美成人小视频| 一级不卡毛片| 国产精品第| 中国一级特黄视频| 色偷偷男人的天堂亚洲av| 亚洲欧美另类视频| 日韩欧美国产综合| 不卡的在线视频免费观看| 中文字幕在线看| 国产精品专区第1页| 久久大香香蕉国产免费网站| 2020极品精品国产| 九一九色国产| …亚洲 欧洲 另类 春色| 亚洲国产欧洲精品路线久久| 国产精品视频观看裸模 | 97在线免费视频| 人妻一区二区三区无码精品一区| 中文字幕啪啪| 亚洲精品国产自在现线最新| 在线免费看黄的网站| 视频二区亚洲精品| 亚洲第一极品精品无码| 亚洲成年人网| 手机成人午夜在线视频| 久久这里只有精品国产99| 国产乱人乱偷精品视频a人人澡| 不卡视频国产| 亚洲第一极品精品无码| 久久夜色撩人精品国产| 欧美狠狠干| 福利国产微拍广场一区视频在线| 在线欧美一区| 91精品国产麻豆国产自产在线 | 乱人伦99久久| 国产午夜无码专区喷水| 97在线公开视频| 国产91导航| 粉嫩国产白浆在线观看| 国产在线一区二区视频| 国产性生大片免费观看性欧美| 国产呦视频免费视频在线观看| 97精品久久久大香线焦| 欧美一级特黄aaaaaa在线看片| 麻豆精品视频在线原创| 国产精品专区第一页在线观看| 日韩国产黄色网站| 欧美在线黄| 久久国语对白| 动漫精品啪啪一区二区三区| 国产9191精品免费观看| 久久久波多野结衣av一区二区| 女人18毛片一级毛片在线 | 天堂在线www网亚洲| 国产一级裸网站| 国产成年女人特黄特色大片免费| 国精品91人妻无码一区二区三区| 国产va免费精品观看| 国产精品毛片一区| 成人av专区精品无码国产| 久久毛片网| 国产麻豆另类AV| 高清无码不卡视频| 国产成人高清精品免费5388| 欧美日韩资源| 9999在线视频| 暴力调教一区二区三区| 国产一二视频| 网友自拍视频精品区| 国产精品中文免费福利|