虛擬實(shí)驗(yàn)畢業(yè)論文初稿_第1頁
虛擬實(shí)驗(yàn)畢業(yè)論文初稿_第2頁
虛擬實(shí)驗(yàn)畢業(yè)論文初稿_第3頁
虛擬實(shí)驗(yàn)畢業(yè)論文初稿_第4頁
虛擬實(shí)驗(yàn)畢業(yè)論文初稿_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 TOC o 1-3 h z u HYPERLINK l _Toc137313477 前言 PAGEREF _Toc137313477 h 2 HYPERLINK l _Toc137313478 第一章研究背景和意義 PAGEREF _Toc137313478 h 3 HYPERLINK l _Toc137313479 1.1關(guān)于虛擬實(shí)驗(yàn)室 PAGEREF _Toc137313479 h 3 HYPERLINK l _Toc137313480 虛擬實(shí)驗(yàn)出現(xiàn)的背景 PAGEREF _Toc137313480 h 3 HYPERLINK l _Toc137313481 虛擬實(shí)驗(yàn)室的構(gòu)成 PAGER

2、EF _Toc137313481 h 5 HYPERLINK l _Toc137313482 虛擬實(shí)驗(yàn)室關(guān)鍵技術(shù) PAGEREF _Toc137313482 h 6 HYPERLINK l _Toc137313483 1.2 開發(fā)微機(jī)原理虛擬實(shí)驗(yàn)平臺的意義 PAGEREF _Toc137313483 h 7 HYPERLINK l _Toc137313484 第二章8255并行接口實(shí)驗(yàn)介紹 PAGEREF _Toc137313484 h 8 HYPERLINK l _Toc137313485 2.1 8255小鍵盤實(shí)驗(yàn) PAGEREF _Toc137313485 h 8 HYPERLINK l

3、 _Toc137313486 2.2 8255開關(guān)狀態(tài)實(shí)驗(yàn) PAGEREF _Toc137313486 h 8 HYPERLINK l _Toc137313487 第三章 開發(fā)工具與開發(fā)環(huán)境 PAGEREF _Toc137313487 h 8 HYPERLINK l _Toc137313488 3.1 VRML介紹 PAGEREF _Toc137313488 h 8 HYPERLINK l _Toc137313489 3.1.1 VRML語言發(fā)展史 PAGEREF _Toc137313489 h 9 HYPERLINK l _Toc137313490 3.1.2 VRML的工作原理 PAGER

4、EF _Toc137313490 h 10 HYPERLINK l _Toc137313491 3.1.3 VRML的應(yīng)用 PAGEREF _Toc137313491 h 11 HYPERLINK l _Toc137313492 3.1.4 VRML語法結(jié)構(gòu)簡介 PAGEREF _Toc137313492 h 12 HYPERLINK l _Toc137313493 3.2 VRMLPad簡介 PAGEREF _Toc137313493 h 16 HYPERLINK l _Toc137313494 3.3 Cortona VRML Client簡介 PAGEREF _Toc137313494

5、h 19 HYPERLINK l _Toc137313495 第四章 詳細(xì)設(shè)計(jì) PAGEREF _Toc137313495 h 20 HYPERLINK l _Toc137313496 4.1設(shè)計(jì)思想 PAGEREF _Toc137313496 h 20 HYPERLINK l _Toc137313497 4.2 模塊設(shè)計(jì) PAGEREF _Toc137313497 h 22 HYPERLINK l _Toc137313498 4.2.1 外觀設(shè)計(jì) PAGEREF _Toc137313498 h 22 HYPERLINK l _Toc137313499 4.2.2 按鈕功能實(shí)現(xiàn) PAGEREF

6、 _Toc137313499 h 23 HYPERLINK l _Toc137313500 4.2.2 連線功能實(shí)現(xiàn) PAGEREF _Toc137313500 h 26 HYPERLINK l _Toc137313501 4.3 整體設(shè)計(jì) PAGEREF _Toc137313501 h 29 HYPERLINK l _Toc137313502 4.3.1 8255小鍵盤實(shí)驗(yàn)仿真 PAGEREF _Toc137313502 h 30 HYPERLINK l _Toc137313503 4.3.2 8255 開關(guān)狀態(tài)實(shí)驗(yàn)仿真 PAGEREF _Toc137313503 h 30 HYPERLIN

7、K l _Toc137313504 第五章 設(shè)計(jì)總結(jié) PAGEREF _Toc137313504 h 30 HYPERLINK l _Toc137313505 參考文獻(xiàn) PAGEREF _Toc137313505 h 30 HYPERLINK l _Toc137313506 致謝 PAGEREF _Toc137313506 h 30前言虛擬現(xiàn)實(shí)(VR-Virtual Reality)是發(fā)展到一定水平上的計(jì)算機(jī)技術(shù)與思維科學(xué)相結(jié)合的產(chǎn)物,它的出現(xiàn)為人類認(rèn)識世界開辟了一條新途徑。虛擬現(xiàn)實(shí)的最大特點(diǎn)是:用戶可以用自然的方式與虛擬環(huán)境進(jìn)行交互操作,改變了過去人類除了親身經(jīng)歷,就只能間接了解環(huán)境的模式,

8、從而有效的擴(kuò)展了自己的認(rèn)知手段和領(lǐng)域。另外,虛擬現(xiàn)實(shí)不僅僅是一個(gè)演示媒體,而且還是一個(gè)設(shè)計(jì)工具,它以視覺形式產(chǎn)生一個(gè)仿真的多維信息空間,為我們創(chuàng)建和體驗(yàn)虛擬世界提供了有利的支持。虛擬現(xiàn)實(shí)技術(shù)可以廣泛應(yīng)用于各個(gè)領(lǐng)域。這些領(lǐng)域包括仿真建模、計(jì)算機(jī)輔助設(shè)計(jì)與制造、可視化計(jì)算、遙控機(jī)器人、計(jì)算機(jī)藝術(shù)、先期技術(shù)與概念演示、教育與培訓(xùn)、數(shù)據(jù)和模型可視化、娛樂和藝術(shù)、設(shè)計(jì)與規(guī)劃及遠(yuǎn)程操作等。雖然虛擬現(xiàn)實(shí)技術(shù)使用戶接觸到的只是一個(gè)虛擬的環(huán)境,但這個(gè)虛擬環(huán)境所體現(xiàn)出來的各項(xiàng)特征和現(xiàn)實(shí)環(huán)境的各項(xiàng)特征基本上是一致的,這樣,即使用戶并沒有進(jìn)入到真實(shí)的場景中,他也能身臨其境地感受所模擬的現(xiàn)實(shí)場景。正是由于虛擬現(xiàn)實(shí)技術(shù)所

9、特有的虛擬及仿真特性,使得人們在需要進(jìn)行一些高成本、高難度、高危險(xiǎn)的實(shí)驗(yàn)時(shí),能夠采用虛擬現(xiàn)實(shí)技術(shù)來進(jìn)行虛擬仿真,這樣無疑能夠降低實(shí)驗(yàn)的難度和成本,大大提高人們實(shí)踐活動(dòng)的效率。虛擬實(shí)驗(yàn)室正是虛擬現(xiàn)實(shí)技術(shù)在教育及科研領(lǐng)域的一項(xiàng)重要應(yīng)用,以Internet為傳播途徑的網(wǎng)絡(luò)虛擬試驗(yàn)室實(shí)現(xiàn)了對傳統(tǒng)實(shí)驗(yàn)室的有力補(bǔ)充,是對傳統(tǒng)實(shí)驗(yàn)室的時(shí)間上拓展和空間上的延伸。網(wǎng)絡(luò)虛擬實(shí)驗(yàn)是指用戶在遠(yuǎn)程通過Internet訪問特定網(wǎng)站,在一定的虛擬環(huán)境下(即用虛擬設(shè)備替代實(shí)際設(shè)備,用仿真實(shí)驗(yàn)替代真實(shí)實(shí)驗(yàn)),按一定步驟完成實(shí)驗(yàn)及相關(guān)參數(shù)選擇和設(shè)定,最終獲得實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果包括通過虛擬儀器或虛擬對象體現(xiàn)出來的實(shí)驗(yàn)過程,各個(gè)過程

10、變量歷史曲線和歷史數(shù)據(jù)等。而網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室則是提供網(wǎng)絡(luò)虛擬實(shí)驗(yàn)的場所。本文介紹了當(dāng)前進(jìn)行虛擬現(xiàn)實(shí)應(yīng)用開發(fā)所要用到的關(guān)鍵技術(shù),對其進(jìn)行比較,并且著重介紹了使用VRML(虛擬現(xiàn)實(shí)建模語言)來開發(fā)微機(jī)原理實(shí)驗(yàn)8255并行接口實(shí)驗(yàn)的虛擬實(shí)驗(yàn)平臺的全過程。意義關(guān)于虛擬實(shí)驗(yàn)室網(wǎng)絡(luò)虛擬實(shí)驗(yàn)可以為學(xué)生提供一些在現(xiàn)實(shí)中無法體驗(yàn)的情景,可以幫助學(xué)生就一些需要進(jìn)行實(shí)驗(yàn)而缺少實(shí)驗(yàn)條件和實(shí)驗(yàn)環(huán)境的研究性學(xué)習(xí)內(nèi)容提供幫助。網(wǎng)絡(luò)虛擬實(shí)驗(yàn)是在Web中創(chuàng)建出一個(gè)可視化的三維環(huán)境,其中每一個(gè)可視化的三維物體代表一種實(shí)驗(yàn)對象。通過鼠標(biāo)的點(diǎn)擊以及拖曳操作,用戶可以進(jìn)行虛擬的實(shí)驗(yàn)。網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室實(shí)現(xiàn)的基礎(chǔ)是多媒體計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)與

11、儀器技術(shù)的結(jié)合。虛擬儀器技術(shù)與認(rèn)知模擬方法的結(jié)合也賦予虛擬實(shí)驗(yàn)室的智能化特征,無論是學(xué)生還是教師,都可以自由地、無顧慮地隨時(shí)進(jìn)入虛擬實(shí)驗(yàn)室操作儀器,進(jìn)行各種實(shí)驗(yàn)。不但為實(shí)驗(yàn)類課程的教學(xué)改革及遠(yuǎn)程教育提供了條件和技術(shù)支持,還可以隨時(shí)為學(xué)生提供更多、更新、更好的儀器。通過網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室,能夠通過計(jì)算機(jī)在網(wǎng)絡(luò)中模擬一些實(shí)驗(yàn)現(xiàn)象。它不僅僅能夠提高遠(yuǎn)程教育的教學(xué)效果,更加重要的是對一些缺乏實(shí)驗(yàn)條件的學(xué)生,通過網(wǎng)絡(luò)同樣能夠“身臨其境”的觀察實(shí)驗(yàn)現(xiàn)象,甚至和異地的學(xué)生合作進(jìn)行實(shí)驗(yàn)。虛擬實(shí)驗(yàn)出現(xiàn)的背景人類社會(huì)發(fā)展的歷程其實(shí)也就是人類向未知世界進(jìn)行探索的過程,在這個(gè)探索過程中,不斷實(shí)踐是最直接,也是最有效率的手

12、段。當(dāng)人們在實(shí)踐中遇到一些之前從來沒有遇到過的問題,或者要驗(yàn)證某種新的理論時(shí),通過做實(shí)驗(yàn)來獲得答案無疑是最為直觀的選擇。通常人們會(huì)針對某個(gè)具體問題來設(shè)計(jì)對應(yīng)的實(shí)驗(yàn),這些實(shí)驗(yàn)?zāi)軌蚝芎玫伢w現(xiàn)出問題的關(guān)鍵點(diǎn),人們通過對實(shí)驗(yàn)過程,實(shí)驗(yàn)現(xiàn)象及實(shí)驗(yàn)結(jié)果的分析來得出問題的大致解決方案或者是理論的實(shí)踐結(jié)果。實(shí)驗(yàn)實(shí)際上就是把實(shí)際問題進(jìn)行模型化,精簡化的一種手段。不管是哪個(gè)學(xué)科,在哪個(gè)時(shí)代,實(shí)驗(yàn)總是解決問題,創(chuàng)新理論的重要依據(jù),正是由于人類不斷地進(jìn)行探索,不斷地進(jìn)行各種實(shí)驗(yàn),才發(fā)展到今天的現(xiàn)代化社會(huì)。到了現(xiàn)代,隨著社會(huì)科學(xué)越來越快的發(fā)展,人們所要面對的各種問題也越來越復(fù)雜,難度也越來越大,通過傳統(tǒng)的模型實(shí)驗(yàn)來解決

13、問題的方法已經(jīng)很難滿足要求,甚至是根本不能解決問題,如一些大規(guī)模,高難度的問題研究對象,采用傳統(tǒng)的模型實(shí)驗(yàn)根本體現(xiàn)不出問題的實(shí)質(zhì),或者難于進(jìn)行直接實(shí)驗(yàn)?zāi)M。像在工程結(jié)構(gòu)分析中有時(shí)需要進(jìn)行建筑物及構(gòu)筑物抗地震能力的分析,橋梁受到汽車高速碰撞的檢驗(yàn)分析等。又如在高速荷載作用下,結(jié)構(gòu)反應(yīng)很快,人們在模擬實(shí)驗(yàn)中只能觀察到最終結(jié)果,而不能觀察試驗(yàn)的全過程。這些問題都是不能直接通過實(shí)驗(yàn)來分析,或者難以進(jìn)行實(shí)驗(yàn)觀測的事例。在當(dāng)今社會(huì)各個(gè)學(xué)科領(lǐng)域中,這些問題還不是最重要的,類似的問題以及更重要的問題還有很多很多,如航空航天、原子反應(yīng)堆等,這些都是屬于造價(jià)昂貴、建設(shè)周期長、危險(xiǎn)性大、難以實(shí)現(xiàn)實(shí)際系統(tǒng)實(shí)驗(yàn)的領(lǐng)域。

14、面對這些復(fù)雜的技術(shù)問題時(shí),如果仍然采用傳統(tǒng)的實(shí)驗(yàn)方法來研究,顯然不能達(dá)到解決問題的目的,長此以往,積累的問題越來越多,勢必影響到科學(xué)技術(shù)發(fā)展的整體進(jìn)程,進(jìn)而影響到整個(gè)社會(huì)的發(fā)展,所以必須要找到一種全新的技術(shù)手段來進(jìn)行問題研究。好在20世紀(jì)中期出現(xiàn)的計(jì)算機(jī)技術(shù)發(fā)展越來越快,其硬件體系、軟件體系以及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)日益完善,計(jì)算機(jī)的應(yīng)用領(lǐng)域也深入到各個(gè)學(xué)科中,計(jì)算機(jī)高精度,高速度的數(shù)據(jù)處理能力為人們解決了很多棘手的問題。特別是在虛擬仿真領(lǐng)域,依托當(dāng)今較為完備的計(jì)算機(jī)軟硬件體系,人們可以通過計(jì)算機(jī)虛擬仿真來完成一些高難度的實(shí)驗(yàn),研究一個(gè)已經(jīng)存在,或者正在研究設(shè)計(jì)中的系統(tǒng)。在進(jìn)行計(jì)算機(jī)虛擬仿真時(shí),首先人

15、們需要把研究對象的各項(xiàng)關(guān)鍵參數(shù)輸入計(jì)算機(jī)中,運(yùn)用專門的虛擬仿真軟件系統(tǒng)在計(jì)算機(jī)內(nèi)建立起真實(shí)系統(tǒng)的計(jì)算機(jī)仿真數(shù)學(xué)模型,然后利用模型代替真實(shí)系統(tǒng)在計(jì)算機(jī)上進(jìn)行實(shí)驗(yàn)和研究。由于采用了虛擬的計(jì)算機(jī)模型來替代現(xiàn)實(shí)系統(tǒng),而不涉及對真實(shí)系統(tǒng)的操作修改,所以虛擬仿真實(shí)驗(yàn)系統(tǒng)具有經(jīng)濟(jì)、可靠、實(shí)用、安全、靈活和可以多次重復(fù)使用的特點(diǎn),現(xiàn)在已經(jīng)成為對各種復(fù)雜系統(tǒng)(工程的、非工程的)進(jìn)行分析、設(shè)計(jì)、實(shí)驗(yàn)、評估的重要手段,而且隨著計(jì)算機(jī)科學(xué)的迅速發(fā)展,虛擬實(shí)驗(yàn)體系的技術(shù)手段、應(yīng)用范圍也越來越廣闊。由于虛擬實(shí)驗(yàn)系統(tǒng)不需要采用真實(shí)的實(shí)驗(yàn)儀器,能夠節(jié)約大量的實(shí)驗(yàn)成本,因此現(xiàn)在除了那些高科技領(lǐng)域采用虛擬實(shí)驗(yàn)系統(tǒng)外,普通學(xué)科領(lǐng)域

16、也開始采用虛擬實(shí)驗(yàn)系統(tǒng)來將其各種實(shí)驗(yàn)進(jìn)行虛擬化,這樣既能節(jié)約投資,又能方便管理。但是最開始的虛擬實(shí)驗(yàn)體系都是單機(jī)版的,許多科研單位、學(xué)校等都建立起專門的實(shí)驗(yàn)機(jī)房作為虛擬實(shí)驗(yàn)室。要進(jìn)行虛擬實(shí)驗(yàn)只能在安裝了虛擬實(shí)驗(yàn)系統(tǒng)的PC上進(jìn)行,必須進(jìn)到專門建立的實(shí)驗(yàn)機(jī)房里去上機(jī),這無疑在時(shí)間、空間上對實(shí)驗(yàn)者制造了障礙。特別是在學(xué)校,像一些較為基礎(chǔ)的實(shí)驗(yàn),需要做這些實(shí)驗(yàn)的學(xué)生人數(shù)較多,機(jī)房配備的PC數(shù)量很難完全滿足全部學(xué)生的上機(jī)要求,這個(gè)問題更是突出。因此必須解決好這個(gè)限制虛擬實(shí)驗(yàn)發(fā)展的問題。隨著Web技術(shù)的發(fā)展,人們開始考慮利用Internet全球互通的優(yōu)勢來解除虛擬實(shí)驗(yàn)室在時(shí)間、空間上對實(shí)驗(yàn)者的種種限制。具

17、體的做法就是建立網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室,通過在網(wǎng)絡(luò)上建立起專門的網(wǎng)站,將虛擬實(shí)驗(yàn)系統(tǒng)搬到網(wǎng)站上去,這樣實(shí)驗(yàn)者只需要使用一臺連接了網(wǎng)絡(luò)的電腦,就能連到虛擬實(shí)驗(yàn)網(wǎng)站進(jìn)行各種實(shí)驗(yàn)了。這也是我們這次設(shè)計(jì)開發(fā)所要研究的對象。虛擬實(shí)驗(yàn)室的構(gòu)成網(wǎng)絡(luò)為虛擬實(shí)驗(yàn)室的實(shí)現(xiàn)提供了一種基礎(chǔ)平臺,基于WEB的瀏覽器/服務(wù)器(B/S)計(jì)算模式也是實(shí)現(xiàn)網(wǎng)上虛擬實(shí)驗(yàn)室的一種基本模式(如圖1.1所示)。服務(wù)器數(shù)據(jù)庫虛擬設(shè)備客戶終端1網(wǎng)絡(luò)客戶終端2客戶終端n圖1.1 虛擬實(shí)驗(yàn)室的組成虛擬實(shí)驗(yàn)室主要有以下幾個(gè)部分組成:服務(wù)器:用于處理大量模擬操作數(shù)據(jù)。數(shù)據(jù)庫:用于存儲模擬資料初始條件和邊界條件以及實(shí)驗(yàn)結(jié)果。虛擬設(shè)備:具有計(jì)算機(jī)接口,能夠進(jìn)

18、行實(shí)驗(yàn)仿真的虛擬實(shí)驗(yàn)設(shè)備。客戶終端:安裝實(shí)驗(yàn)處理客戶端軟件(或者支持Java、VRML等腳本的瀏覽器插件)的聯(lián)網(wǎng)PC機(jī),用于數(shù)據(jù)處理、分析、存儲并使之可視化。服務(wù)器端通過軟件技術(shù)仿真各種實(shí)驗(yàn)環(huán)境,接收來自客戶端的實(shí)驗(yàn)操作請求,根據(jù)客戶端對虛擬實(shí)驗(yàn)設(shè)備不同的實(shí)驗(yàn)參數(shù)設(shè)置,調(diào)整儀器的狀態(tài),模擬產(chǎn)生實(shí)驗(yàn)的現(xiàn)象,輸出對應(yīng)的實(shí)驗(yàn)數(shù)據(jù)或?qū)嶒?yàn)現(xiàn)象到客戶端。學(xué)習(xí)者在客戶端進(jìn)行實(shí)驗(yàn)操作,其中實(shí)驗(yàn)過程中的數(shù)據(jù)和實(shí)驗(yàn)結(jié)果數(shù)據(jù)通過網(wǎng)絡(luò)在客戶端顯示出來,也可以放置于服務(wù)器端進(jìn)行保存,對于一些需要保密數(shù)據(jù)也可以在單獨(dú)在客戶端存放。在實(shí)驗(yàn)過程中,如果是多人合作實(shí)驗(yàn),還可以附加一套網(wǎng)絡(luò)通信系統(tǒng),如BBS等,以保證多人在合作實(shí)

19、驗(yàn)過程保持同步,服務(wù)器端的后臺數(shù)據(jù)庫提供了可以共享的實(shí)驗(yàn)數(shù)據(jù)和實(shí)驗(yàn)方法。虛擬實(shí)驗(yàn)室關(guān)鍵技術(shù)基于網(wǎng)絡(luò)的虛擬實(shí)驗(yàn)室的設(shè)計(jì)除了實(shí)驗(yàn)內(nèi)容和結(jié)構(gòu)設(shè)計(jì)以外,關(guān)鍵技術(shù)主要是軟件工程方面的技術(shù),如JAVA技術(shù)、ActiveX技術(shù)、VRML技術(shù)和QuickTime VR技術(shù)等。下面就虛擬實(shí)驗(yàn)室實(shí)現(xiàn)的有關(guān)技術(shù)要求作一概括介紹。(1)數(shù)據(jù)資源的共享。虛擬實(shí)驗(yàn)室涉及大量數(shù)據(jù)信息,為了能更好地管理數(shù)據(jù),提高數(shù)據(jù)資源的共享能力,應(yīng)實(shí)現(xiàn)實(shí)驗(yàn)教程的多媒體呈現(xiàn)形式;建立實(shí)驗(yàn)數(shù)據(jù)信息庫,用以存儲實(shí)驗(yàn)測量數(shù)據(jù)、用戶個(gè)人數(shù)據(jù)和實(shí)驗(yàn)報(bào)告等信息;建立智能檢索系統(tǒng),以便實(shí)現(xiàn)檢索并進(jìn)入某個(gè)具體實(shí)驗(yàn),搜索用戶信息等功能。(2)建立共享軟件庫。

20、如虛擬測量儀器、數(shù)據(jù)處理等程序的遠(yuǎn)程共享、隊(duì)列問題等。(3)支持用戶與教師間以及用戶與用戶間的交互??赏ㄟ^WEB頁面、BBS、個(gè)人目錄等手段實(shí)現(xiàn)。(4)可靠的安全機(jī)制。安全性是所有合作環(huán)境和共享資源建立的基礎(chǔ)。主要技術(shù)有用戶的鑒別注冊和權(quán)限驗(yàn)證技術(shù),郵件、個(gè)人數(shù)據(jù)的加密和數(shù)字簽名技術(shù)等。(5)協(xié)同虛擬環(huán)境實(shí)現(xiàn)技術(shù)。即基于網(wǎng)絡(luò)環(huán)境下的多個(gè)用戶遠(yuǎn)程共同研討同一個(gè)問題的實(shí)現(xiàn)技術(shù)。這是一個(gè)難點(diǎn),必須解決一致性、協(xié)作性、擴(kuò)展性、交互性、實(shí)時(shí)性等問題。(6)面向?qū)ο缶幊谭椒ǖ膶?shí)現(xiàn)。利用面向?qū)ο蟮姆椒?,結(jié)合構(gòu)筑虛擬實(shí)驗(yàn)室中所涉及到的信息,抽象為以下各類:用戶類:封裝對實(shí)驗(yàn)室用戶的各種權(quán)限設(shè)置以及對用戶數(shù)據(jù)庫

21、的各種操作控制。用戶數(shù)據(jù)類:封裝用戶之間交流信息的各屬性以及信息的分類、轉(zhuǎn)儲、轉(zhuǎn)發(fā)、排序等管理操作。虛擬儀器類:封裝VI(虛擬儀器)在網(wǎng)絡(luò)上的地址、儀器狀態(tài)、對儀器進(jìn)行的操作控制、對儀器進(jìn)行操作控制的權(quán)限等??刂茀?shù)類:封裝如硬件中斷號、I/O地址內(nèi)存基址、各種端口地址等參數(shù)以及運(yùn)行參數(shù)的設(shè)置、讀寫性能檢查、總線標(biāo)準(zhǔn)、性能結(jié)構(gòu)描述等。測試數(shù)據(jù)類:封裝對各種測試數(shù)據(jù)進(jìn)行存儲、操作、用戶定制等操作,并可形成報(bào)表、測試數(shù)據(jù)的顯示等功能。結(jié)果數(shù)據(jù)類:封裝對應(yīng)的VI和測試數(shù)據(jù)以及用戶信息等屬性,以及對分析結(jié)果進(jìn)行數(shù)據(jù)管理操作。1.2 開發(fā)微機(jī)原理虛擬實(shí)驗(yàn)平臺的意義隨著計(jì)算機(jī)科學(xué)的迅速發(fā)展和技術(shù)的普及,其

22、應(yīng)用范圍已涉及到當(dāng)今社會(huì)的各行各業(yè),幾乎是無孔不入。在這種情形下,非計(jì)算機(jī)專業(yè)的技術(shù)人員對微型計(jì)算機(jī)的工作原理有個(gè)基本的了解也成為了必要,因此很多高校非計(jì)算機(jī)專業(yè)也開始為其學(xué)生開設(shè)有關(guān)微型計(jì)算機(jī)原理及應(yīng)用的課程。如我校的微機(jī)原理及應(yīng)用課程即專門面向非計(jì)算機(jī)專業(yè)學(xué)生開設(shè)。學(xué)習(xí)微機(jī)原理及應(yīng)用課程及其他電子類課程必定離不開上機(jī)實(shí)驗(yàn)操作,由于學(xué)校非計(jì)算機(jī)專業(yè)學(xué)生人數(shù)眾多,計(jì)算機(jī)學(xué)院本專業(yè)的學(xué)生也不在少數(shù),這就要求專業(yè)實(shí)驗(yàn)室實(shí)驗(yàn)設(shè)備數(shù)目和質(zhì)量要能滿足需要。而事實(shí)上存在這樣一個(gè)問題,就是微機(jī)原理及應(yīng)用課程上機(jī)操作所需要的儀器設(shè)備價(jià)格昂貴,而且如果操作不當(dāng),極易損壞,一旦損壞的話維修起來既費(fèi)錢又費(fèi)時(shí)間。我校

23、實(shí)驗(yàn)室目前的現(xiàn)狀就是設(shè)備數(shù)目少,能用的設(shè)備數(shù)目更少,而需要上機(jī)的學(xué)生數(shù)量眾多,實(shí)驗(yàn)室很難滿足大量學(xué)生實(shí)驗(yàn)的需求,這就在一定程度上影響了學(xué)生學(xué)習(xí)該課程的學(xué)習(xí)進(jìn)度和學(xué)習(xí)質(zhì)量。因此當(dāng)務(wù)之急就是要找到一個(gè)好的解決方案。當(dāng)前網(wǎng)絡(luò)技術(shù)已經(jīng)十分成熟,而虛擬現(xiàn)實(shí)技術(shù)也在各個(gè)領(lǐng)域得到應(yīng)用,并體現(xiàn)出許多以往舊技術(shù)沒有的新特點(diǎn)。所以現(xiàn)在很多高校和科研單位開始結(jié)合網(wǎng)絡(luò)技術(shù)和虛擬現(xiàn)實(shí)技術(shù)來開發(fā)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室。這是一種很好的技術(shù)方案,首先,它能夠解決實(shí)驗(yàn)室設(shè)備數(shù)量不足的缺陷,只要網(wǎng)站服務(wù)器性能過硬,網(wǎng)絡(luò)狀態(tài)良好,便能滿足成千上萬的學(xué)生同時(shí)實(shí)驗(yàn);其次,它能解決設(shè)備易損壞的問題,由于學(xué)生操作的是用虛擬現(xiàn)實(shí)技術(shù)開發(fā)出的虛擬設(shè)備

24、,不存在損壞設(shè)備的情況,這樣還可以讓學(xué)生更加自主地放手操作;再次,它大大提高了學(xué)生實(shí)驗(yàn)時(shí)間、空間上的便利,學(xué)生無論何時(shí),無論何地,只要能連接網(wǎng)絡(luò),即可通過電腦連接到虛擬實(shí)驗(yàn)平臺進(jìn)行實(shí)驗(yàn);最后,它還能為實(shí)驗(yàn)室設(shè)備更新升級提供便利,可以隨時(shí)用新的虛擬設(shè)備替換虛擬實(shí)驗(yàn)室的舊的虛擬設(shè)備;由于不需要真正的設(shè)備,虛擬實(shí)驗(yàn)室唯一的成本就是網(wǎng)站建設(shè)和虛擬設(shè)備開發(fā)的成本,這和建立一個(gè)真實(shí)的實(shí)驗(yàn)機(jī)房相比,無疑能夠節(jié)省大量的資金。隨著學(xué)校教學(xué)體系的不斷完善,將來也許還會(huì)建立起更多學(xué)科的虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室,如醫(yī)學(xué)、機(jī)械、化工等學(xué)科。因此,我們進(jìn)行微機(jī)原理虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺的開發(fā)是一項(xiàng)很有意義的工作,不僅為計(jì)算機(jī)學(xué)院解決了微

25、機(jī)原理實(shí)驗(yàn)的問題,同時(shí)也為我校虛擬實(shí)驗(yàn)系統(tǒng)的開發(fā)邁開了第一步。8255并行接口實(shí)驗(yàn)介紹 2.1 8255小鍵盤實(shí)驗(yàn)2.2 8255開關(guān)狀態(tài)實(shí)驗(yàn)第三章 開發(fā)工具與開發(fā)環(huán)境我們在開發(fā)微機(jī)原理虛擬實(shí)驗(yàn)平臺的過程中,采用的開發(fā)語言是VRML虛擬現(xiàn)實(shí)建模語言,開發(fā)工具是VRMLPad2.1,指定的瀏覽器插件是Cortona VRML Client。 3.1 VRML介紹熟悉WWW的人們都知道,受HTML語言的局限性,VRML之前的網(wǎng)頁只能是簡單的平面結(jié)構(gòu),就算Java語言能夠?yàn)閃WW增色不少,但也僅僅停留在平面設(shè)計(jì)階段,而且實(shí)現(xiàn)環(huán)境與參與者的動(dòng)態(tài)交互是非常煩瑣的。于是,VRML就應(yīng)運(yùn)而生了。第一代Web

26、是以HTML為核心的二維瀏覽技術(shù),第二代Web是以VRML為核心的三維瀏覽技術(shù)。第二代Web把VRML與HTML、Java、媒體信息流等技術(shù)有機(jī)地結(jié)合起來,形成一種新的三維超媒體Web。VRML被稱為繼HTML之后的第二代Web語言,它本身是一種建模語言,也就是說,它是用來描述三維物體及其行為的,可以構(gòu)建虛擬境界(Virtural World), 可以集成文本、圖像、音響、MPEG影像等多種媒體類型,還可以內(nèi)嵌用Java、ECMAScript等語言編寫的程序代碼。VRML的基本目標(biāo)是建立因特網(wǎng)上的交互式三維多媒體,基本特征包括分布式、三維、交互性、多媒體集成、境界逼真性等。 VRML語言發(fā)展史

27、VRML(Virtual Reality Modeling Language)虛擬現(xiàn)實(shí)建模語言,是由非營利的VRML聯(lián)盟制定的三維網(wǎng)絡(luò)應(yīng)用標(biāo)準(zhǔn)。VRML聯(lián)盟在1994年推出了VRML1.0版本,制定了網(wǎng)絡(luò)上描述三維圖形的格式標(biāo)準(zhǔn)。由于VRML 1.0規(guī)格只定義了靜態(tài)的對象展示、材質(zhì)、光源以 及網(wǎng)絡(luò)連結(jié)功能,缺少互動(dòng)的處理,VAG于1996年初著手制定新一代的VRML規(guī)格,并于網(wǎng)絡(luò)上公開征求VRML 2.0的建議書。在1997年,VRML1.0重新地編寫為VRML2.0,加入了許多交互的功能。VRML2.0在1998年真是通過ISO組織審議成為三維網(wǎng)絡(luò)的國際標(biāo)準(zhǔn)并命名為VRML97。VRML97

28、相當(dāng)于二維網(wǎng)絡(luò)中的HTML標(biāo)準(zhǔn)。許多大公司都開始支持VRML97,例如SGI的Cosmo軟件部門推出Cosmo Player瀏覽器插件和Cosmo World可視化場景編輯器,微軟也在IE 5中捆綁PLATINUM WorldView瀏覽器插件,大多數(shù)的3D軟件如AutoCAD、3DSMAX、Maya也開始提供VRML97場景導(dǎo)入導(dǎo)出的支持。然而VRML97并沒有一統(tǒng)三維網(wǎng)絡(luò)的天下。此后又不斷地有大量的例如3DML、Cult3D、Viewpoint、Shockwave3D這樣的新的三維網(wǎng)絡(luò)格式出現(xiàn)。這些新軟件提供了更出色的視覺效果和更小的文件體積,以及相對完整和便捷的創(chuàng)作工具。而這時(shí),SGI放

29、棄了Cosmo軟件部門,PLATINUM收購了Cosmo軟件部門,后來CA公司收購了PLATINUM。CA現(xiàn)在基本上放棄了PLATINUM和Cosmo軟件的開發(fā)工作,也沒有在推出新的VRML軟件。PLATINUM Worldview作為一個(gè)老舊的軟件,也沒有再整和在微軟的IE 6中。VRML給人的印象就一直停留在它1998年的影響上,VRML似乎在人們的視野中逐漸消失,很多人甚至以為VRML已經(jīng)消亡。1999年底,VRML的又一種編碼方案X3D草案發(fā)布。X3D整合正在發(fā)展的XML、JAVA、流技術(shù)等先進(jìn)技術(shù),包括了更強(qiáng)大、更高效的3D計(jì)算能力、渲染質(zhì)量和傳輸速度。以及對數(shù)據(jù)流強(qiáng)有力的控制,多種

30、多樣的交互形式。2000年6月世界web3D協(xié)會(huì)發(fā)布了VRML2000國際標(biāo)準(zhǔn)(草案),2000年9月又發(fā)布了VRML2000國際標(biāo)準(zhǔn)(草案修訂版)。 2002年7月23日,web3d聯(lián)盟日前發(fā)布了可擴(kuò)展3D(X3D)標(biāo)準(zhǔn)草案并且配套推出了軟件開發(fā)工具供人們下載和對這個(gè)標(biāo)準(zhǔn)提出意見。這項(xiàng)技術(shù)是虛擬現(xiàn)實(shí)建模語言(VRML)的后續(xù)產(chǎn)品,是用XML語言表述的。X3D基于許多重要廠商的支持,可以與MPEG-4兼容,同時(shí)也與VRML 97及其之前的標(biāo)準(zhǔn)兼容。它把VRML的功能封裝到一個(gè)輕型的、可擴(kuò)展的核心之中,開發(fā)者可以根據(jù)自己的需求,擴(kuò)展其功能。X3D標(biāo)準(zhǔn)的發(fā)布,為Web3D圖形的發(fā)展提供了廣闊的前景

31、。 VRML的工作原理VRML是一種用在Internet和Web超鏈上的,多用戶交互的,獨(dú)立于計(jì)算機(jī)平臺的,網(wǎng)絡(luò)虛擬現(xiàn)實(shí)建模語言。虛擬世界的顯示、交互及網(wǎng)絡(luò)互連都可以用VRML來描述。 VRML的設(shè)計(jì)是從在WEB上欣賞實(shí)時(shí)3D圖象開始的。VRML瀏覽器既是插件,又是幫助應(yīng)用程序,還是獨(dú)立運(yùn)行的應(yīng)用程序,它是傳統(tǒng)的虛擬現(xiàn)實(shí)中同樣也使用的實(shí)時(shí)3D著色引擎。這使得VRML應(yīng)用從三維建模和動(dòng)畫應(yīng)用中分離出來,在三維建模和動(dòng)畫應(yīng)用中可以預(yù)先對前方場景進(jìn)行著色,但是沒有選擇方向的自由。VRML提供了6+1度的自由,用戶可以沿著三個(gè)方向移動(dòng),也可以沿著三個(gè)方向旋轉(zhuǎn),同時(shí)還可以建立與其它3D空間的超鏈接。因此

32、VRML是超空間的。 VRML定義了一種把3D圖形和多媒體集成在一起的文件格式。從語法角度看,VRML文件是顯式地定義和組織起來的3D多媒體對象集合;從語義角度看,VRML文件描述的是基于時(shí)間的交互式3D多媒體信息的抽象功能行為。VRML文件描述的基于時(shí)間的3D空間稱為虛擬境界(Virtual World),簡稱境界,所包含的圖形對象和聽覺對象可通過多種機(jī)制動(dòng)態(tài)修改。 VRML文件可以包含對其他標(biāo)準(zhǔn)格式文件的引用??梢园袹PEG、PNG和MPEG文件用于對象紋理映射,把WAV和MIDI文件用于在境界中播放的聲音。另外,還可以引用包含Java或ECMAScript代碼的文件,從而實(shí)現(xiàn)對象的編程行

33、為。所有這些都是由其他標(biāo)準(zhǔn)提供的,之所以在VRML中選用它們,是因?yàn)樗鼈冊贗nternet上的廣泛應(yīng)用。VRML 97規(guī)范描述了它們在VRML中的用法。 VRML使用場景圖(Scene Graph)數(shù)據(jù)結(jié)構(gòu)來建立3D實(shí)境,這種數(shù)據(jù)結(jié)構(gòu)是以SGI開發(fā)的Open Inventor3D工具包為基礎(chǔ)的一種數(shù)據(jù)格式。VRML的場景圖是一種代表所有3D世界靜態(tài)特征的節(jié)點(diǎn)等級:幾何關(guān)系、質(zhì)材、紋理、幾何轉(zhuǎn)換、光線、視點(diǎn)以及嵌套結(jié)構(gòu)。幾乎所有生產(chǎn)廠商,無論是CAD、建模、動(dòng)畫、VR,還是VRML,他們的結(jié)構(gòu)核心都有場景圖。 境界中的對象及其屬性用節(jié)點(diǎn)(Node)描述,節(jié)點(diǎn)按照一定規(guī)則構(gòu)成場景圖(Scene G

34、raph),也就是說,場景圖是境界的內(nèi)部表示。場景圖中的第一類節(jié)點(diǎn)用于從視覺和聽覺角度表現(xiàn)對象,它們按照層次體系組織起來,反映了境界的空間結(jié)構(gòu)。另一類節(jié)點(diǎn)參與事件產(chǎn)生和路由機(jī)制,形成路由圖(Route Graph),確定境界隨時(shí)間的推移如何動(dòng)態(tài)變化。 VRML文件的解釋、執(zhí)行和呈現(xiàn)通過瀏覽器實(shí)現(xiàn),這與利用瀏覽器顯示HTML文件的機(jī)制完全相同。瀏覽器把場景圖中的形態(tài)和聲音呈現(xiàn)給用戶,這種視聽覺呈現(xiàn)即所謂的虛擬世界(境界)。用戶通過瀏覽器獲得的視聽覺效果如同從某個(gè)特定方位體驗(yàn)到的,境界中的這種位置和朝向稱為取景器(Viewer)。 VRML的訪問方式是基于客戶/服務(wù)器模式的。其中服務(wù)器提供VRML

35、文件及支持資源(圖像、視頻、聲音等),客戶端通過網(wǎng)絡(luò)下載希望訪問的文件,并通過本地平臺上的VRML瀏覽器交互式地訪問該文件描述的虛擬境界。由于瀏覽器是本地平臺提供的,從而實(shí)現(xiàn)了平臺無關(guān)性。下圖描述了VRML的工作方式。VRML是一個(gè)開發(fā)標(biāo)準(zhǔn),為了加強(qiáng)協(xié)作,避免技術(shù)重復(fù)和市場沖突,而鼓勵(lì)其他技術(shù)引用VRML或成為VRML的一部分。與VRML關(guān)系密切的三項(xiàng)技術(shù)是Java3D、MPEG-4和Chrome。其中,Java3D和VRML都把3D Web作為關(guān)鍵應(yīng)用對象,前者的優(yōu)勢在于程序設(shè)計(jì),后者的優(yōu)勢在于場景構(gòu)造,二者在可編程性3D Web應(yīng)用方面密切合作。MPEG-4面向基于內(nèi)容的交互式視訊應(yīng)用,可

36、以為VRML提供流技術(shù)、壓縮和音響同步技術(shù),而MPEG-4用VRML來描述3D內(nèi)容。在2D頁面集成方面,可以探索VRML和Microsoft的Chrome協(xié)作的可能性。3.1.3 VRML的應(yīng)用VRML在電子商務(wù)、教育、工程技術(shù)、建筑、娛樂、藝術(shù)等領(lǐng)域的廣泛應(yīng)用,將會(huì)促使它迅速發(fā)展,并成為構(gòu)建網(wǎng)絡(luò)虛擬現(xiàn)實(shí)應(yīng)用系統(tǒng)的基礎(chǔ)。虛擬現(xiàn)實(shí)作為一種全新的人機(jī)接口技術(shù),必須研究用戶和計(jì)算機(jī)之間的協(xié)調(diào)關(guān)系問題,這樣一個(gè)問題只有通過大量的使用才能逐步解決,VRML以因特網(wǎng)作為應(yīng)用平臺,最有希望成為構(gòu)筑虛擬現(xiàn)實(shí)應(yīng)用的基本構(gòu)架。 國內(nèi)還開發(fā)過一些基于VRML97的應(yīng)用系統(tǒng),如浙江公眾信息產(chǎn)業(yè)有限公司的3Dworld

37、。 VRML將創(chuàng)造一種融多媒體、三維圖形、網(wǎng)絡(luò)通訊、虛擬現(xiàn)實(shí)為一體的新型媒體,兼具先進(jìn)性和普及性,是關(guān)心三維圖形、多媒體、新一代網(wǎng)頁開發(fā)和虛擬現(xiàn)實(shí)技術(shù)的人士應(yīng)密切注意的。 3.1.4 VRML語法結(jié)構(gòu)簡介VRML語言風(fēng)格類似于面向?qū)ο缶幊陶Z言。在面向?qū)ο缶幊陶Z言中,程序都是由一系列“對象”組成的,而在VRML語言中,一個(gè)完整的程序是由一系列的“節(jié)點(diǎn)”(nodes)組成的。正如每個(gè)“對象”或者“類”都有一組方法和變量一樣,VRML中的“節(jié)點(diǎn)”也是由一組能夠規(guī)定該節(jié)點(diǎn)屬性的值構(gòu)成,每個(gè)“節(jié)點(diǎn)”都是由四個(gè)特性值構(gòu)成的,它們分別是:1、節(jié)點(diǎn)種類如 立方體、球體、錐體等2、節(jié)點(diǎn)參數(shù)稱為“域”(Field

38、s),規(guī)定節(jié)點(diǎn)形態(tài)各項(xiàng)參數(shù)3、節(jié)點(diǎn)名稱識別某個(gè)節(jié)點(diǎn)的唯一名稱,可以缺省4、子節(jié)點(diǎn)從屬于主節(jié)點(diǎn)的一系列節(jié)點(diǎn) VRML中節(jié)點(diǎn)可以分為三類:形狀節(jié)點(diǎn)(Shape)指明幾何特性,如立方體、球體、圓錐體及ASCII字符節(jié)點(diǎn)屬性節(jié)點(diǎn)(Property)影響節(jié)點(diǎn)的外在表現(xiàn),如 外觀、位置、翻轉(zhuǎn)度、光照效果等組節(jié)點(diǎn)(Group)集合其它節(jié)點(diǎn),以整體形式呈現(xiàn) VRML中的域規(guī)定節(jié)點(diǎn)形態(tài)各項(xiàng)參數(shù),分為exposedField(暴露域)和field(非暴露域),其中暴露域允許外部操作對它的值進(jìn)行修改,而非暴露域則不允許。按照域的結(jié)構(gòu)類型,又分為單值域(SF.)和多值域(MF.)兩大類, VRML共定義了11個(gè)單值域

39、和9個(gè)多值域 VRML語句結(jié)構(gòu):第一行文字是:#VRML V2.0 utf8這是VRML文件的標(biāo)志,所有2.0版本的VRML文件都以這行文字打頭,VRML97是由VRML2.0版修訂而成的,符合VRML97規(guī)范的VRML文件也以這行文字打頭。其中“#”表示這是一個(gè)注釋。而utf8表示此文件采用的是utf8編碼方案,這在標(biāo)準(zhǔn)中有詳細(xì)說明。 先加入一個(gè)Group節(jié)點(diǎn)(組節(jié)點(diǎn)): Group #這是一個(gè)多值節(jié)點(diǎn)組節(jié)點(diǎn)的花括號之內(nèi)的所有內(nèi)容視為一個(gè)整體,利用組節(jié)點(diǎn)可以把虛擬場景組織成條理清晰的樹形分支結(jié)構(gòu)。下面定義組節(jié)點(diǎn)的children域(孩子域): children #這是一個(gè)多值節(jié)點(diǎn)在child

40、ren后的方括號內(nèi)定義Group節(jié)點(diǎn)的所有孩子對象,第一個(gè)孩子是一個(gè)Shape節(jié)點(diǎn)(形態(tài)節(jié)點(diǎn)),它描述一個(gè)幾何形狀及其顏色等特征: Shape #這是一個(gè)單值節(jié)點(diǎn)在Shape 節(jié)點(diǎn)內(nèi)定義一個(gè)幾何體Box(方盒節(jié)點(diǎn)): geometry Box #這是一個(gè)單值節(jié)點(diǎn)注意我們沒有為Box定義任何域,這意味著它的尺寸和坐標(biāo)位置等特性取缺省值(單位立方體)。隨后補(bǔ)齊各右括號: 這是一個(gè)最簡單的VRML文件,呈現(xiàn)出來的將是一個(gè)白色的正方體,下面是完整的文件: #VRML V2.0 utf8 Group #組節(jié)點(diǎn)children #子節(jié)點(diǎn)列表 Shape #子節(jié)點(diǎn)中的形狀節(jié)點(diǎn) geometry Box #幾

41、何域,定義一個(gè)立方體 圖3.1.1 圖3.1.2VRML程序的基本格式大體上在這個(gè)簡單程序中體現(xiàn)出來了,如果要想生成更為復(fù)雜多樣的物體,就必須要用到另外一些高級的節(jié)點(diǎn)或域。如下例,加入了translation域(控制位移量)、rotation 域(控制節(jié)點(diǎn)翻轉(zhuǎn)方式)Appearance節(jié)點(diǎn)(控制外觀)、diffuseColor(定義反射色調(diào))域和size(定義立方體尺寸)域。呈現(xiàn)出來的將是一個(gè)外觀為紅色,尺寸為2,中心位置處于坐標(biāo)(3 ,0 ,0)處的正方體,如圖3.1.2。#VRML V2.0 utf8Transform #類似于Group節(jié)點(diǎn),但能夠增加平移、旋轉(zhuǎn)和縮放變換的相關(guān)域tran

42、slation 3 0 0 平移向右3個(gè)單位 rotation 0 1 1 1.57 #以原點(diǎn)與點(diǎn)(0 1 1)連線為軸轉(zhuǎn)1.57弧度children Shape appearance Appearance material Material diffuseColor 1 0 0紅色 geometry Box size 2 2 2 #尺寸為2個(gè)單位 另外,VRML中基本形狀還有球形sphere、圓錐cone兩種。同一個(gè)VRML程序中允許存在多個(gè)Transform節(jié)點(diǎn),我們可以為不同的節(jié)點(diǎn)定義不同的形狀、外觀、尺寸以及位移坐標(biāo),這些都是根據(jù)程序的需要來定義,這樣我就能夠使用不同形狀的幾何體組成一

43、定外觀的物體。格式如下:Transform #節(jié)點(diǎn)一ChildrenTransform #節(jié)點(diǎn)二ChildrenTransform #節(jié)點(diǎn)三Children 在VRML程序中,有時(shí)候會(huì)要求有交互的功能,這就要求用到觸發(fā)器節(jié)點(diǎn)(TouchSensor),這個(gè)節(jié)點(diǎn)附和在某個(gè)實(shí)體節(jié)點(diǎn)上,作為其子節(jié)點(diǎn),當(dāng)鼠標(biāo)指針移動(dòng)到該實(shí)體節(jié)點(diǎn)上時(shí),便會(huì)出現(xiàn)一個(gè)手掌形觸摸提示標(biāo)志。使用方法即在要添加觸發(fā)器的節(jié)點(diǎn)的children節(jié)點(diǎn)中加上一行TouchSensor即可。一般情況下不同的觸發(fā)點(diǎn)將觸發(fā)不同的事件,這就要為觸發(fā)器取名,使用DEF定義即可,使用方法如下,這樣就為圖3.1中的正方體附加了一個(gè)觸發(fā)器,名為touc

44、h。TransformChildrenDEF touch TouchSensorShape #子節(jié)點(diǎn)中的形狀節(jié)點(diǎn) geometry Box #幾何域,定義一個(gè)立方體 在VRML程序中,普通的線段也是一類幾何節(jié)點(diǎn),定義為IndexedLineSet,一條線由若干個(gè)索引點(diǎn)連接而成,這些索引點(diǎn)屬于一個(gè)point域,這個(gè)域中包含了一系列的三維坐標(biāo)點(diǎn),編號從0開始遞增。而連接這些點(diǎn)還有一定的順序關(guān)系,這個(gè)順序關(guān)系由coordIndex域定義,編號從任意一個(gè)坐標(biāo)點(diǎn)開始。示例如下:Transform children Shape geometry IndexedLineSetcoord Coordinate

45、 point 3 4 0-2 4 0-2 -3 02 -4 0coordIndex 0,1,2,3,0這樣就定義了一條連接了四個(gè)坐標(biāo)點(diǎn)的封閉連線,如圖3.3。圖3.1.3 在VRML2.0中新引入的功能就是交互,即能控制動(dòng)作的發(fā)生,這就要用到一個(gè)新的節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)被命名為Script,所有對事件動(dòng)作進(jìn)行控制的代碼都放在這個(gè)節(jié)點(diǎn)中,寫腳本的語言可以是java、javascript、vrmlscript,其中javascript和vrmlscript腳本可以直接放在script節(jié)點(diǎn)中,而java寫的腳本代碼必須以class文件的形式引入VRML文件。這些腳本語言的用法和特性在這里就不多介紹了。 V

46、RML中動(dòng)作的產(chǎn)生與控制除必須依賴腳本代碼外,還必須使用路由機(jī)制,即ROUTE,這個(gè)機(jī)制實(shí)際上就是用來引導(dǎo)事件進(jìn)行方向的。比如最簡單也是最常用的觸發(fā)事件,當(dāng)用戶點(diǎn)擊某個(gè)包含了觸發(fā)器的實(shí)體節(jié)點(diǎn)后,按照設(shè)計(jì)要求,將觸發(fā)script節(jié)點(diǎn)中的某個(gè)函數(shù),這個(gè)函數(shù)負(fù)責(zé)產(chǎn)生某個(gè)動(dòng)作,實(shí)現(xiàn)對某個(gè)實(shí)體節(jié)點(diǎn)的操作,如改變節(jié)點(diǎn)位置、顏色、尺寸等。這樣事件發(fā)生的方向即:被觸發(fā)的節(jié)點(diǎn)腳本節(jié)點(diǎn)要操作的對象,示例如下:#VRML V2.0 utf8Transform children DEF tou TouchSensor#為正方體定義一個(gè)觸發(fā)器 Shape appearance Appearance material D

47、EF box Material diffuseColor 1 0 0 #將其材質(zhì)節(jié)點(diǎn)命名#為boxgeometry Box DEF script Script #定義腳本節(jié)點(diǎn),命名為scripteventInSFBool touch #定義一個(gè)布爾型入事件,對應(yīng)touch函數(shù)eventOut SFColor setcolor #定義一個(gè)單值顏色型出事件field SFColor newcolor 0 1 0#定義一個(gè)單值顏色域,綠色 url javascript: #腳本段,使用javascript語言 function touch() #觸發(fā)響應(yīng)函數(shù),把newcolor域賦給出事件setco

48、lor setcolor=newcolor; ROUTE tou.isActiveTO script.touch #觸發(fā)器的觸發(fā)事件路由到script的touch入事件,從而觸發(fā)touch函數(shù) ROUTE script.setcolor TO box.diffuseColor#script節(jié)點(diǎn)的setcolor出事件路由到box的顏色域,將其修改這個(gè)例子的功能就是定義一個(gè)紅色的正方體,點(diǎn)擊它后,其顏色就改變?yōu)榫G色。以上介紹的就是VRML的一些基本的語法結(jié)構(gòu),也是在本次設(shè)計(jì)中用到最多的語法結(jié)構(gòu),限于篇幅,在這里只做一個(gè)大致的介紹。3.2 VRMLPad簡介談到VRML開發(fā),不得不提的開發(fā)工具就是

49、VRMLPad了,這個(gè)工具是由Web3D 公司 ParallelGraphics開發(fā)的,是目前為止用得最多,也是比較好用的VRML開發(fā)工具。其界面如圖3.3所示:圖3.2.1由于VRMLPad界面簡潔易用,查錯(cuò)及提示功能強(qiáng)大,一直是VRML開發(fā)者的首選開發(fā)工具。VRMLPad界面左邊是文件的場景樹、路徑圖,以及本地資源文件列表,右邊部分則是代碼編輯區(qū),最右邊是節(jié)點(diǎn)縮略圖預(yù)覽區(qū),提供單個(gè)節(jié)點(diǎn)或組的預(yù)覽功能。下面就VRMLPad的一些特性進(jìn)行簡單介紹。a、智能自動(dòng)完成在編輯 VRML 文本時(shí)能夠根據(jù)上下文關(guān)系及其在場景圖中的位置給出一個(gè)包含合適的 VRML 標(biāo)識文本的列表以供選擇。這些 VRML

50、標(biāo)識文本關(guān)鍵字關(guān)鍵字、PROTO 原型定義名稱、節(jié)點(diǎn)名稱、域的名稱、域類型、SFNode 節(jié)點(diǎn)和 MFNode 節(jié)點(diǎn)的子域、標(biāo)準(zhǔn) VRML 腳本對象及其屬性和方法的名稱。 b、動(dòng)態(tài)錯(cuò)誤檢測VrmlPad 可以提示用戶語法、值類型的錯(cuò)誤或警告。提供域值是否在適當(dāng)范圍中??梢孕r?yàn)是否有重復(fù)的節(jié)點(diǎn)定義,是否有不匹配的域名或路由。 c、語法強(qiáng)調(diào)顯示支持可定制的 VRML 語法強(qiáng)調(diào)顯示(包括關(guān)鍵詞、域和節(jié)點(diǎn)的類型)。d、多文檔同時(shí)編輯在同一個(gè) VrmlPad 中同時(shí)打開多個(gè)文件以便進(jìn)行文件之間的復(fù)制、剪切、粘貼的操作, 或方便的查找替換文本。同一個(gè)文件也可以使用兩個(gè)窗口來瀏覽同一文件的不同部分。根據(jù)當(dāng)前

51、打開的文件能夠很容易的找到與之相關(guān)的文件(例如 Inlines、Anchor、EXTERNPROTOs)并進(jìn)行編輯。e、自動(dòng)化操作與自定義腳本操作VrmlPad 允許開發(fā)者通過外部應(yīng)用程序界面(API)使用 C、C+、Visual Basic、Borland Delphi 這樣的語言來操控 Vrmlpad。另外高級用戶還可以通過建立來插件、VBScript、JavaScript 宏命令來在 VrmlPad 環(huán)境中執(zhí)行自定義的任務(wù)。f、整合腳本調(diào)試器可以使用此整合的腳本調(diào)試器在內(nèi)嵌的 vrmlscript 腳本中,或在用 Cortona 控件插入VRML的網(wǎng)頁中查找并修復(fù)。這個(gè)調(diào)試器有這些控制腳

52、本的執(zhí)行的功能:可以暫停腳本的執(zhí)行,運(yùn)行至指定行,設(shè)置斷點(diǎn),一步步的運(yùn)行腳本。監(jiān)視腳本的數(shù)據(jù)狀態(tài):當(dāng)前調(diào)用的堆棧;相關(guān)的前后代碼中變量,數(shù)組,對象;計(jì)算包含這些數(shù)據(jù)的表達(dá)式。在調(diào)試階段修改變量,數(shù)組,或?qū)ο蟮闹?。在調(diào)試階段添加并測試新的腳本代碼。使用 Quick Watch window(快速監(jiān)視窗口)檢驗(yàn)或修改變化的數(shù)據(jù)。使用CodeTips(代碼上的彈出提示)快速監(jiān)視腳本中的變量值。 g.預(yù)覽使用系統(tǒng)里安裝的 VRML 瀏覽器預(yù)覽場景??梢宰詣?dòng)檢測系統(tǒng)中安裝的 VRML 瀏覽器,也可以指定在其中某個(gè)特定的瀏覽器中預(yù)覽場景??梢詥为?dú)預(yù)覽選定的節(jié)點(diǎn)或組。h.節(jié)點(diǎn)縮略圖在文本編輯區(qū)旁邊同步顯示節(jié)

53、點(diǎn)的縮略圖。i.發(fā)布組織并優(yōu)化所有的相關(guān)文件,對場景可以采用 Gzip 壓縮格式以優(yōu)化網(wǎng)絡(luò)下載的速度。把所有資源打包并上傳到服務(wù)器上或作為郵件附件發(fā)送出去。3.3 Cortona VRML Client簡介Cortona VRML Client是一款VRML 瀏覽器,也是由Web3D 公司 ParallelGraphics 發(fā)布的,其控制面板如下圖所示,由一個(gè)豎直的工具條和一個(gè)水平的工具條組成。如果電腦上沒有安裝VRML瀏覽器,將不能打開VRML文件,當(dāng)試圖打開一個(gè)VRML文件時(shí),系統(tǒng)會(huì)提示需要下載VRML瀏覽器插件,下載安裝的便是Cortona VRML Client或者其他種類的VRML瀏

54、覽器。我們只有借助了VRML瀏覽器才能夠?yàn)g覽.WRL文件,與VRML場景進(jìn)行交互,以及進(jìn)行虛擬實(shí)驗(yàn)。其控制按鈕為 : walk, fly, study, plan, pan, turn, roll; goto, align, view, restore,fit圖3.3.1各個(gè)按鈕功能分別是:walk:即象我們平時(shí)走路一樣,它考慮重力的影響,也就是說我們的替身必須腳底下有可以支撐他的實(shí)物(這里指的是虛擬的實(shí)物),默認(rèn)觀察方式為plan。fly: 飛行,它不考慮重力的影響,即我們可以任意的前進(jìn)、后退、上升、下降,默認(rèn)觀察方式為planstudy:結(jié)合plan,pan,turn,roll等方式可以全

55、方位的觀察虛擬物體,默認(rèn)觀察方式為turn。plan:控制自己的替身前進(jìn)、后退、側(cè)前進(jìn),側(cè)后退。結(jié)合不同的navigation有不同的效果。pan:控制自己的替身上升、下降、左移,右移。該選項(xiàng)不改變視角。turn:當(dāng)navigation為walk時(shí),瀏覽器會(huì)先把替身著陸,然后以替身為中心全方位改變視角;當(dāng)navigation為fly時(shí),以替身為中心全方位改變視角;當(dāng)navigation為study時(shí),不改變視角,而是以所觀察的物體的體中心為中心全方位的旋轉(zhuǎn)物體,這樣便于從不同的角度觀察事物。roll:與navigation 的結(jié)合使用與turn類似goto:可以使替身瞬移,而能夠觀察所要仔細(xì)觀

56、察的局部物體。align:使替身的腳底平面與水平重合。restore:使視角回到default view ,即網(wǎng)頁回到初始狀態(tài)。fit:使替身能在特定的位置觀察到所有的虛擬物體。view:切換不同的預(yù)定視角。Cortona VRML Client的使用方法簡單明了,使用者很容易就能學(xué)會(huì)如何使用。第四章 詳細(xì)設(shè)計(jì) 4.1設(shè)計(jì)思想 首先,必須使用VRML語言建立起虛擬實(shí)驗(yàn)設(shè)備的外觀,包括其中的各個(gè)部件,如按鈕、連線點(diǎn)、連線、開關(guān)、標(biāo)志等。由于所用到的微機(jī)原理實(shí)驗(yàn)儀器外型比較簡單,只需要用到VRML基本的立方體、球體、錐體進(jìn)行合理的組合就能夠制作出較為理想的外觀模型,所以這里不需要借助第三方的3D模

57、型開發(fā)工具。在開發(fā)過程中,虛擬實(shí)驗(yàn)設(shè)備的外觀、比例都嚴(yán)格按照真實(shí)的設(shè)備進(jìn)行設(shè)計(jì)。其次,虛擬實(shí)驗(yàn)設(shè)備由一些基本的部件組成,其中一些部件如按鈕、連線點(diǎn)、開關(guān)等都需要具備一定的交互功能。比如當(dāng)用戶按下某個(gè)按鈕將產(chǎn)生某種實(shí)驗(yàn)現(xiàn)象,如亮燈;點(diǎn)擊兩個(gè)連線點(diǎn),將在這兩個(gè)連線點(diǎn)間生成一條連線,等等。而且每次實(shí)驗(yàn)開始之前,都必須檢查所有的連線是否已經(jīng)完成,否則實(shí)驗(yàn)將無法生成應(yīng)有的實(shí)驗(yàn)現(xiàn)象,或者是產(chǎn)生因連線錯(cuò)誤而造成的某種結(jié)果。這些功能就需要通過腳本代碼編程來實(shí)現(xiàn)。在本次開發(fā)中采用的腳本語言是javascript。之所以采用javascript語言來編寫腳本代碼,是考慮到VRML文件最后將嵌入到網(wǎng)頁中,而且可能要

58、和網(wǎng)頁之間進(jìn)行一些數(shù)據(jù)通信,而當(dāng)前的網(wǎng)頁所使用的HTML語言同樣能夠很好的支持javascript腳本,這樣就比較容易實(shí)現(xiàn)HTML程序與VRML程序之間的通信。再次,必須解決好網(wǎng)頁與VRML文件之間的通信問題。在真實(shí)的微機(jī)原理上機(jī)實(shí)驗(yàn)中,最重要的環(huán)節(jié)就是編寫運(yùn)行實(shí)驗(yàn)驅(qū)動(dòng)程序。針對某個(gè)具體的實(shí)驗(yàn),某個(gè)具體的芯片來編寫匯編程序,通過運(yùn)行匯編程序來指定芯片控制口地址以及數(shù)據(jù)口地址,建立起PC和實(shí)驗(yàn)平臺某個(gè)芯片之間的連接,以實(shí)現(xiàn)對芯片工作方式及控制字的設(shè)定。驅(qū)動(dòng)程序運(yùn)行就緒之后,再按照實(shí)驗(yàn)指導(dǎo)連接線路,進(jìn)行相應(yīng)的實(shí)驗(yàn)操作后便能觀察到正確的實(shí)驗(yàn)結(jié)果或者實(shí)驗(yàn)現(xiàn)象。而在虛擬實(shí)驗(yàn)平臺的設(shè)計(jì)思想中,編寫匯編程序

59、以及對匯編程序進(jìn)行檢驗(yàn)、查錯(cuò)的功能都由VRML虛擬實(shí)驗(yàn)設(shè)備所在的網(wǎng)頁的代碼檢驗(yàn)?zāi)K來完成,VRML虛擬實(shí)驗(yàn)設(shè)備本身不具備代碼驗(yàn)證的能力。在這里,網(wǎng)頁中的代碼檢驗(yàn)?zāi)K的功能相當(dāng)于真實(shí)實(shí)驗(yàn)中PC機(jī)的作用,而VRML編寫的虛擬實(shí)驗(yàn)設(shè)備則替代了真實(shí)的實(shí)驗(yàn)設(shè)備。按照真實(shí)實(shí)驗(yàn)的流程,如果實(shí)驗(yàn)的驅(qū)動(dòng)程序沒有運(yùn)行,或者運(yùn)行錯(cuò)誤,將不能產(chǎn)生正確的實(shí)驗(yàn)結(jié)果,或者只能產(chǎn)生一個(gè)初始狀態(tài),且不能響應(yīng)用戶的操作,如8255開關(guān)狀態(tài)實(shí)驗(yàn),如果沒有正確運(yùn)行驅(qū)動(dòng)程序,不管12個(gè)開關(guān)的狀態(tài)如何,顯示出來的十二位狀態(tài)數(shù)字應(yīng)該是全1,因?yàn)?255芯片未初始化,不能按實(shí)驗(yàn)要求工作,所以讀不出與其B口C口連接的開關(guān)的狀態(tài)。所以在虛擬實(shí)驗(yàn)

60、平臺的設(shè)計(jì)過程中也必須充分考慮到這點(diǎn),也就是說網(wǎng)頁的代碼驗(yàn)證模塊必須對所輸入的匯編程序代碼進(jìn)行檢驗(yàn),當(dāng)檢驗(yàn)結(jié)果正確無誤,且VRML虛擬實(shí)驗(yàn)設(shè)備中的連線都已經(jīng)完成后,才能正確地模擬實(shí)驗(yàn)的過程,否則虛擬設(shè)備產(chǎn)生的實(shí)驗(yàn)結(jié)果應(yīng)該和未運(yùn)行驅(qū)動(dòng)程序產(chǎn)生的實(shí)驗(yàn)結(jié)果一致。4.2 模塊設(shè)計(jì)在概要設(shè)計(jì)中,主要探究如何設(shè)計(jì)虛擬實(shí)驗(yàn)設(shè)備的外觀,以及虛擬實(shí)驗(yàn)設(shè)備各類部件(按鈕、連線點(diǎn)、開關(guān)等)的模型及交互功能的實(shí)現(xiàn)。4.2.1 外觀設(shè)計(jì)這里主要設(shè)計(jì)的設(shè)備外觀即微機(jī)原理實(shí)驗(yàn)箱的底座(箱蓋忽略不采用)。這個(gè)底座由于形狀簡單,且不需要進(jìn)行交互,因此設(shè)計(jì)比較簡單,采用兩個(gè)立方體組合在一起即可形成實(shí)驗(yàn)箱底座的外形。效果如圖4.2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論