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

        ?

        基于VSL的動態(tài)圖示表的實現(xiàn)

        2014-04-29 00:00:00趙智
        計算機光盤軟件與應用 2014年13期

        摘 要:復雜虛擬系統(tǒng)的交互界面,一般由二維的動態(tài)圖示框架構成。但是用Virtools自帶BB模塊過于復雜和繁瑣。本文提出一種基于VSL的混合模式的的解決方案,用簡單、清晰的流程和更有效的方法,實現(xiàn)動態(tài)圖示表。

        關鍵詞:Virtools;VSL;混合模式;動態(tài)圖示表;VSL-BB模塊

        中圖分類號:TP751

        Virtools是一個典型的面向?qū)ο蟮拈_發(fā)環(huán)境,其編制程序的過程是基于流程化(Schematic)的編程模式,同時具有良好的可視的流程化編程的功能。也就是把一部分代碼封裝成一個模塊,也稱為BB模塊,每個可以單個獨立實現(xiàn)某一特定的功能,把若干個具備單個功能的BB模塊依次連接,形成一個邏輯流程。流程化的優(yōu)點是:邏輯明確、思路清晰,邏輯及流程上的改動相對比較方便;其次,不用編寫任何代碼也能實現(xiàn)程序的功能。

        基于Virtools的虛擬現(xiàn)實中二維按鈕交互功能設計實現(xiàn)[1]中,閘述了二維按鈕在交互功能在虛擬現(xiàn)實中的重要性以及實現(xiàn)方法。在虛擬現(xiàn)實環(huán)境中,特別在圖形界面下,實現(xiàn)人機交互,鼠標進行交互為主,因此用Virtools開發(fā)的虛擬系統(tǒng),不管是主界面還是進入功能模塊,采用二維按鈕交互,會取得更佳的交互效果。換言之,用好二維按鈕交互功能,決定了產(chǎn)品界面的優(yōu)與劣。典型的二維交互式主界面由一個動態(tài)圖示表構成,《就是要做3D游戲》[2]的第十三章給出了一個制作動態(tài)圖示表的方案并給描述了實現(xiàn)的整個過程,給讀者提供一個可以借鑒的經(jīng)典的實例。但是,其實現(xiàn)動態(tài)圖示表的方法,全程做用Virtools自帶的BB模塊實現(xiàn),共用18個BB模塊實現(xiàn)動態(tài)圖示表顯示的功能,而程序流程連線隨著模塊數(shù)量的增加而增加,至使程序的邏輯不夠明確而影響程序的易讀性和程序的維護,凸顯單純使用自帶BB模塊的局限性,換句話說,單一使用自帶BB模塊實現(xiàn)較復雜的功能,須用犧牲程序和流程的易讀為代價。換言之,為實現(xiàn)某一特殊功能,僅靠Virtools自身的BB還不能滿足需要,這時需要使用合適的工具(如VSL)編寫新的BB模塊以適用于特殊用途。為此,本文提出一種基于VSL的混合模式的解決方案,用簡單、清晰的流程和更有效的方法,實現(xiàn)動態(tài)圖示表。

        1 混合式實現(xiàn)動態(tài)圖示框架的流程

        用Virtools開發(fā)項目的流程中的各個功能單元,一般可通過三種途徑實現(xiàn),即用BB模塊實現(xiàn)、在可視化環(huán)境下實現(xiàn)或編寫VSL程序?qū)崿F(xiàn)。三種方法各有優(yōu)勢和劣勢,因此,項目流程的開發(fā)過程中,根據(jù)不同的情況,采用三種方法的組合形式實現(xiàn)單功能單元,可提高程序的易讀性,使程序的邏輯更加清晰,便于程序的修改與維護。

        基于VSL混合模式的解決方案,就是在解決問題時,采用多種方式的組合而非單一的用Virtools自帶BB模塊的組合方法,換言之,用可視化環(huán)境、自編VSL-BB模塊或Virtools自帶模塊,分別實現(xiàn)各個功能單元,形成一個混合模式,至于各功能單元用什么方式,視具體情況而定。以下是上述這種混合模式實現(xiàn)動態(tài)圖示表的流程。

        基于VSL混合式方式實現(xiàn)動態(tài)圖示框架,可分為以下三個模塊實現(xiàn)。

        模塊一:創(chuàng)建2Dframe序列并依次命名。

        模塊二:創(chuàng)建列數(shù)=1的數(shù)據(jù)表array,

        與2Dframe序列號進行以字符串形式的鏈接。

        模塊三:確定行數(shù)(row)和列數(shù)(column)、縱向和橫向偏移量(Offset);

        遍歷array的記錄;

        設置框架與2Dframe序列的父子關系;

        計算每個2Dframe的二維坐標并根據(jù)坐標值定位。

        其中,1至2模塊均在可視化環(huán)境完成,由于Virtools的可視化程度很高,結果即時在視化環(huán)境的schematic窗口上展現(xiàn),因此,模塊1至2模塊的實現(xiàn)過程容易、簡單,過程一目了然。第3模塊通過編寫VSL-BB模塊來實現(xiàn)2Dframe序列的相對二維坐標的定位。

        2 VSL函數(shù)和VSL-BB模塊的實現(xiàn)

        2.1 VSL的GetElementObject和Cast函數(shù)

        VSL-BB模塊的實現(xiàn),需要調(diào)用GetElementObject和Cast函數(shù)。

        首先,GetElementObject是數(shù)據(jù)表對象Array的函數(shù)。

        調(diào)用格式:Array.GetElementObject(int x,int y),其中,x,y分別對應數(shù)據(jù)表的行標和列標,函數(shù)返回值是數(shù)據(jù)表Array第x行、第y列單元格所存放的內(nèi)容,通常是字符串,Array第y列的域的數(shù)據(jù)類型為parament。

        由于Array存放的數(shù)據(jù)并不是物件本身,而是與物件建立了一一映射的字符串(物件的名字),因此,Array.GetElementObject()的返回值是字符串并不是物件,VSL要對字符串所映射的物件進行操作,須用對象Object的函數(shù)Cast進行轉換并賦予臨時變量,通過對臨時變量的操作實現(xiàn)在物件的操作。

        Cast的調(diào)用格式形如:Object.Cast(String temp)。

        對GetElementObject和Cast函數(shù),可用復合的方式實現(xiàn)對兩個函數(shù)的調(diào)用,本文中的VSL-BB模塊,是實現(xiàn)對2DFrame具體操作,因此,其調(diào)用格式為:

        temp=Entity2D.Cast(MyArray.GetElementObject(x,y));其中temp為Entity2D類型變量。

        2.2 VSL-BB模塊的實現(xiàn)

        模塊的主要功能是對2Dframe物件序列(2DButton0~8)的相對定位,其中參考體為框架的裝飾圖像。根據(jù)框架裝飾圖像、2Dframe物件的大小(2Dframe的長與寬都是48)以及經(jīng)驗,做如下的初值設置:

        row=3;column=3;Offset=19;interval=5;

        按以下公式計算第i個2DButtoni(i=0,1,2,…,8)的坐標:

        主要的程序段如下:

        for (row=0;row<3;row++)

        for (column=0;column<3;column++)

        {

        temp=Entity2D.Cast(MyArray.GetElementObject(x,y));

        temp.x=xi;

        temp.y=yi;

        }

        ……

        3 實驗及測試結果

        準備:首先將框架裝飾圖像導入當前場景;在可視化環(huán)境(LayOut窗口)下,建立一個2DButton0,復制8個,名字依次為2DButton1~8,共9個,創(chuàng)建只有一列的數(shù)據(jù)表Array,其中,域的數(shù)據(jù)類型設置為paratmenter,添加9個行,依次將9個行的數(shù)據(jù)設置為字符串2DButton0~8并與2DButton0~8進行以字符串形式的鏈接,將字符串2DButton0~8與物件2DButton0~8建立一一映射關系。

        打開Schematic窗口,添加VSL-BB模塊并打開VSL編輯窗,此時,在其右側(可視化環(huán)境)的input添加row、column、初始變量并設置相應的初值。在VSL代碼編輯區(qū)域輸入程序代碼(見2.2),通過編譯并運行,得到如圖所示的結果。

        過程在兩個窗口中完成,首先在可視化窗口(3DLayOut)完成;其次,在VSL編輯窗實現(xiàn)特定功能的VSL-BB模塊的編譯和調(diào)試,流程簡潔明了。

        4 結束語

        本文在Virtools下,用VSL語言編程的方式,提出了在虛擬系統(tǒng)中,界面動態(tài)圖示框架的方案,解決了用Virtools自帶BB模塊過于復雜的缺陷。一般來說,復雜虛擬系統(tǒng)的交互界面,都由二維的動態(tài)圖示框架構成,因此,本文中的方法具有一般性,適用在虛擬系統(tǒng)開發(fā)中,對高效實現(xiàn)二維交互界面的開發(fā)有一定的指導意義。

        參考文獻:

        [1]李梅,韓秀玲,陳光.基于VirtoolsSDK的虛擬實驗室BB模塊開發(fā)方法研究[J].計算機與現(xiàn)代化,2013.

        [2]劉明昆.就是要做3D游戲-Virtools秘笈篇[M].北京:中國青年出版社,2010.

        作者簡介:趙智(1962.10-),男,廣西龍州人,廣西師范大學本科,副教授,研究方向:計算機應用。

        作者單位:廣西教育學院 數(shù)學與信息科學學院,南寧 530023

        亚洲毛片在线免费视频| 日本一区二区三区在线播放| 国产成人精品久久一区二区三区| 国产成人精品a视频| 暖暖 免费 高清 日本 在线| 粗大的内捧猛烈进出少妇| 国产国产裸模裸模私拍视频| 成人无码α片在线观看不卡| 国产如狼似虎富婆找强壮黑人| 人妻暴雨中被强制侵犯在线| 亚洲色无码播放| 精品无码AⅤ片| 国产亚洲精品hd网站| 中文字幕日韩人妻高清在线| 日本一区二区在线看看| 亚洲福利一区二区不卡| 日本在线一区二区免费| av在线免费观看大全| 香蕉成人伊视频在线观看| 风流老太婆大bbwbbwhd视频| 真人做人试看60分钟免费视频| 中国农村妇女hdxxxx| 国产精品爽爽va在线观看网站| 亚洲性无码av在线| 一区二区三区在线视频爽| 精品一区二区三区国产av| 亚洲视频在线观看一区二区三区| 成人欧美一区二区三区在线观看 | 野花在线无码视频在线播放| 国产精品久久久久久久久鸭 | 香蕉成人伊视频在线观看| 少妇丰满大乳被男人揉捏视频| 亚洲av无码乱观看明星换脸va | 一区二区三区四区午夜视频在线 | 成年男人午夜视频在线看| 国产高清女主播在线观看| 大香焦av一区二区三区| 麻花传媒68xxx在线观看| 国产精品第一国产精品| 亚洲另类精品无码专区| 亚洲精品成人av一区二区|