freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

虛擬現(xiàn)實(shí)技術(shù)——vrml篇-展示頁(yè)

2025-07-23 01:56本頁(yè)面
  

【正文】 }} geometry Box {} } ] }Transform節(jié)點(diǎn)的translation 5 0 0表示x軸向上右移5個(gè)單位(米)則第三個(gè)場(chǎng)景完整代碼如下: VRML utf8Group {children [ Transform { translation 5 0 0 children [ Shape { appearance Appearance {material Material { diffuseColor 1 0 0 }} geometry Box {} } ] } 〕 }――第四個(gè)場(chǎng)景 復(fù)制節(jié)點(diǎn),并將各自的幾何形狀定義為方塊、球體和圓椎Group {children [ Transform { translation 5 0 0 children [ Shape { . . . geometry Box {}} ] }Transform { translation 0 0 0 children [ Shape { . . . geometry Sphere {}} ] }Transform { translation 5 0 0 children [ Shape { . . . geometry Cone {}} ] } ] end of Group children} 為了以后引用方便,分別給這3個(gè)Transform節(jié)點(diǎn)指定一個(gè)名稱: DEF box Transform { . . . }DEF Sphere Transform { . . . }DEF cone Transform { . . . }則第四個(gè)場(chǎng)景的完整代碼是: VRML utf8Group {children [ DEF box Transform { translation 5 0 0 children [ Shape {appearance Appearance {material Material { diffuseColor 1 0 0 }} geometry Box {}} ] }DEF sphere Transform { translation 0 0 0 children [ Shape { appearance Appearance {material Material { diffuseColor 0 1 0 }} geometry Sphere {}} ] }DEF cone Transform { translation 5 0 0 children [ Shape {appearance Appearance {material Material { diffuseColor 0 0 1 }} geometry Cone {}} ] } ] end of Group children},用瀏覽器觀看,可從多個(gè)方位瀏覽自己的作品。在場(chǎng)景中,傳感器節(jié)點(diǎn)一般是以其他節(jié)點(diǎn)的子節(jié)點(diǎn)的身份存在的,它的父節(jié)點(diǎn)稱為可觸發(fā)節(jié)點(diǎn),觸發(fā)條件和時(shí)機(jī)由傳感器節(jié)點(diǎn)類型確定。當(dāng)你拖動(dòng)鼠標(biāo)或按動(dòng)箭頭鍵時(shí)(按照VRML術(shù)語(yǔ),稱為航行),虛擬境界就會(huì)旋轉(zhuǎn)或縮放,這實(shí)際上是在調(diào)整你的視點(diǎn)位置或視角。這里我們定義兩個(gè)視點(diǎn)節(jié)點(diǎn):  DEF view1 Viewpoint { ?。!皏iew1”是編程時(shí)引用的名字   position 0 0 20    description View1  #“View1”是瀏覽器上顯示的名字   }   DEF view2 Viewpoint {    position 5 0 20    description view2    }   目的是使用戶可以通過(guò)觸發(fā)開(kāi)關(guān)節(jié)點(diǎn)來(lái)切換視點(diǎn)。(放在Group節(jié)點(diǎn)之前),并把其中的方塊節(jié)點(diǎn)修改成可觸發(fā)節(jié)點(diǎn):   DEF box Tranform {    children [     Shape { .... Box ...}     DEF touchBox TouchSensor {} #定義觸發(fā)節(jié)點(diǎn)    ]    }   把修改過(guò)的文件另存為“”。能夠接收事件的節(jié)點(diǎn)都應(yīng)具有事件入口(eventIn),如果它要接收多種類型的事件(稱為入事件),它就應(yīng)該具有多個(gè)事件入口,也就是說(shuō),事件入口象節(jié)點(diǎn)的域一樣是有類型的。例如ViewPoint節(jié)點(diǎn)就有一個(gè)事件入口set_bind,當(dāng)向此事件送入一個(gè)值“TRUE”(即所謂的入事件)時(shí),該viewpoint節(jié)點(diǎn)成為當(dāng)前視點(diǎn)。   事件出口和事件入口通過(guò)路徑相連,這就是VRML文件中除節(jié)點(diǎn)以外的另一基本組成部分:ROUTE 語(yǔ)句。在這里,我們是把接觸檢測(cè)器touchBox的事件出口isActive連接到視點(diǎn)節(jié)點(diǎn)view2的事件入口set_bind:   ROUTE TO   現(xiàn)在我們得到的VRML文件是:   VRML utf8    DEF view1 Viewpoint {  #視點(diǎn)    position 0 0 20     description view1     }    DEF view2 Viewpoint {     position 5 0 20     description view2     }    Group {     children [      DEF box Transform {       translation 5 0 0        children [         Shape {          appearance Appearance {           material Material {            diffuseColor 1 0 0           }           }          geometry Box {}          }         DEF touchBox TouchSensor {} #觸感        ]       }      DEF sphere Transform {       translation 0 0 0        children [         Shape {          appearance Appearance {           material Material {            diffuseColor 0 1 0           }           }          geometry Sphere {}          }         ]       }      DEF cone Transform {       translation 5 0 0        children [         Shape {          appearance Appearance {           material Material {            diffuseColor 0 0 1            }           }          geometry Cone {}          }         ]       }      ] end of Group children     }     ROUTE TO #傳遞  把這個(gè)文件調(diào)入瀏覽器,然后把鼠標(biāo)指向方塊并按下左鈕(先別松開(kāi)!),可以看到視點(diǎn)已經(jīng)變?yōu)関iew2,內(nèi)部的機(jī)制我們已經(jīng)很清楚:左鈕按下時(shí)方塊節(jié)點(diǎn)的接觸檢測(cè)器被觸發(fā),接著接觸檢測(cè)器從事件出口isActive送出一個(gè)事件“TRUE”,這個(gè)事件通過(guò)路由進(jìn)入視點(diǎn)節(jié)點(diǎn)view2的事件入口set_bind,view2收到“TRUE”后成為當(dāng)前視點(diǎn),所以在我們眼前場(chǎng)景發(fā)生了變化。因?yàn)樗砷_(kāi)鼠標(biāo)左鍵后,接觸傳感器向view2發(fā)送了“FALSE”事件,這樣view2的當(dāng)前地位被解除。在VRML中,利用Script節(jié)點(diǎn)(腳本節(jié)點(diǎn))定義用戶自定義行為,所謂定義即用腳本描述語(yǔ)言(Scripting Language)編寫(xiě)腳本的過(guò)程。應(yīng)提請(qǐng)注意的是:VRML是基于節(jié)點(diǎn)的語(yǔ)言,所以腳本也是封裝在Script這個(gè)特殊節(jié)點(diǎn)中的。   上面我們?cè)呀佑|檢測(cè)器touchBox 和視點(diǎn)view2直接通過(guò)路徑連接起來(lái),現(xiàn)在要定義我們指定的行為,就需要在二者之間插入一個(gè)腳本節(jié)點(diǎn),也就是讓路徑繞個(gè)彎:   ROUTE TO   ROUTE TO   其中的腳本節(jié)點(diǎn)touchScript有一個(gè)事件人口touchBoxIsActive和一個(gè)事件出口bind_View2,前者接收來(lái)自接觸檢測(cè)器touchBox的事件,然后經(jīng)自己的腳本處理后,把結(jié)果發(fā)送給視點(diǎn)節(jié)點(diǎn)view2:   DEF touchScript Script {    eventIn SFBool touchBoxIsActive ?。H肟凇  ventOut SFBool bindView2     #出口   urljavescript:         ?。D_本    function touchBoxIsActive(active) {  ?。Ec入口同名的函數(shù)被調(diào)用     bindView2= TRUE?! 。?)這里定義的事件入口touchBoxIsActive(即入事件)和事件出口bindView2(即出事件)的類型都是SFBool(單值布爾型),它們與touchBox的事件出口isActive和view2的事件入口set_bind的類型保持一致?! 。?)腳本是以函數(shù)(function)的形式給出的,函數(shù)名touchBoxIsActive 與事件入口的名稱相同,這是和ECMAScript語(yǔ)言的接口約定,表示相應(yīng)事件入口收到事件后調(diào)用此函數(shù)進(jìn)行處理。  ?。?)接觸檢測(cè)器發(fā)出一個(gè)“TRUE”事件。  ?。?)函數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1