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

正文內(nèi)容

虛擬現(xiàn)實(shí)技術(shù)——vrml篇-在線瀏覽

2024-08-24 01:56本頁(yè)面
  

【正文】 向touchScript的事件出口bindView2發(fā)送一個(gè)“TRUE”事件(還可以進(jìn)行其它判斷或執(zhí)行其它事件)。按照VRML約定,“認(rèn)為”上述事件是同時(shí)發(fā)生的,也就是這些事件的時(shí)間戳相同。 本節(jié)的完整代碼是:   VRML utf8    DEF view1 Viewpoint {     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 Tranform {        transaltion 5 0 0        children [         Shape {          appearance Appearance {           material Material {            diffuseColor 0 0 1            }           }          geometry Cone {}          }         ]        }       ] end of Group children      }     DEF touchScript Script {      eventIn SFBool touchBoxIsActive      eventOut SFBool bindView2      url javascript :       function touchBoxIsActive (active) {        bindView2 = TRUE。在后面的幾節(jié)中,我們將探索一些專(zhuān)題性的有趣功能,而本節(jié)是基礎(chǔ),因而必須透徹理解。正如你在標(biāo)準(zhǔn)中可以查到的那樣,ProximitySensor節(jié)點(diǎn)定義為:ProximitySensor {    exposedField SFVec3f center 0 0 0    exposedField SFVec3f size 0 0 0    exposedField SFBool enabled TRUE    eventOut SFBool isActive    eventOut SFVec3f position_changed    eventOut SFRotation orientation_changed    eventOut SFTime enterTime    eventOut SFTime exitTime    }ProximitySensor節(jié)點(diǎn)共有三個(gè)外露域(exposedField)和五個(gè)出事件(eventOut).出事件我們已經(jīng)熟悉,是節(jié)點(diǎn)狀態(tài)發(fā)生改變時(shí)用來(lái)通知其它節(jié)點(diǎn)的,這里的出事件isActive 用于ProximitySensor通報(bào)自己已被激活。若用戶(hù)已在檢測(cè)器之內(nèi),則當(dāng)用戶(hù)的位置或方位發(fā)生變化時(shí),送出position_changed和orientation_changed出事件。外露域則集域(Field)、入事件(eventIn)和出事件(eventOut)三者的功能于一身,也就是說(shuō),它既象域一樣描述了節(jié)點(diǎn)的當(dāng)前狀態(tài),又可以作為入事件由其它節(jié)點(diǎn)修改這種狀態(tài),并作為出事件把這種改變通知其它節(jié)點(diǎn)。  我們要在方塊、球體和圓柱這三個(gè)物體構(gòu)成的靜態(tài)世界,現(xiàn)在在球體周?chē)黾右粋€(gè)鄰近檢測(cè)區(qū):DEF sphere Transform {    translation 0 0 0     children [      Shape {....}      DEF eClose ProximitySensor {       center 0 0 0       size 4 4 4       }      ]     }ProximitySensor的名字為eCloser,鄰近區(qū)的中心和球體的球心重合,形狀為正方體,邊長(zhǎng)為4米,是球體直徑的兩倍。      }    }隨后,我們?cè)卩徑鼨z測(cè)器的出事件isActive和腳本節(jié)點(diǎn)eCloserScript的入事件enterProximitySensorIsActive之間建立路由,后者收到事件后執(zhí)行函數(shù)enterProximitySensroIsActive,函數(shù)發(fā)出bindView2出事件,這個(gè)出事件通過(guò)路由連接到視點(diǎn)節(jié)點(diǎn)View2:ROUTE TO   ROUTE TO 也就是說(shuō),一旦用戶(hù)進(jìn)入鄰近區(qū),、三個(gè)物體、一個(gè)鄰近檢測(cè)器和一個(gè)腳本節(jié)點(diǎn)組成的境界的完整代碼如下:VRML utf8   DEF view1 Viewpoint {    position 0 0 20    description view1    }   DEF view2 Viewpoint {    position 0 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 sphere Transform {      translation 0 0 0      children [       Shape {        appearance Appearance {         material Material {          diffuseColor 0 1 0          }         }        geometry Sphere {}        }       DEF eCloser ProximitrySensor {        center 0 0 0        size 4 4 4        }       ]      }     DEF cone Transform {      translation 5 0 0      children [       Shape {        appearance Appearance {         material Material {          diffuseColor 0 0 1         }         }        geometry Cone {}        }       ]      }     ]end of Group children    }   DEF eCloserScript Script {    eventIn SFBool enterProximitySensorIsActive    eventOut SFBool bindView2    url javascript :     function enterProximitySensorIsActive(active) {      bindView2=TRUE。再稍稍修改一下鄰近檢測(cè)器,把它的中心位置向右移了2米:   DEF eCloser ProximitySensor {    center 2 0 0    size 4 4 4    }   這樣你就可以從左邊(方塊那一邊)走進(jìn)球體(視點(diǎn)不跳),但不能從右邊(圓錐那一邊)走近它(視點(diǎn)跳轉(zhuǎn))。我們已經(jīng)使用過(guò)接觸檢測(cè)器,當(dāng)我們把鼠標(biāo)指針?lè)诺椒綁K(這個(gè)幾何節(jié)點(diǎn)包含接觸檢測(cè)器)上面時(shí),指針形狀發(fā)生變化,這意味著我們已經(jīng)進(jìn)入檢測(cè)區(qū),如果按下鼠標(biāo)左鈕,則按照我們的定義,當(dāng)前視點(diǎn)會(huì)發(fā)生變化。⑴接觸傳感器作為開(kāi)始的基本代碼是:   VRML utf8   DEF cube Transform {   rotation 1 1 1 0    children [     Shape {      appearance Appearance {       material Material {        diffuseColor 1 0 0        }       }      geometry Box {}      }     DEF TouchS TouchSensor {}     ]    }   DEF revolver Script {    eventIn SFBool startRevolving    eventOut SFRotation revolve    field SFFloat angle 0    url javascript :     function startRevolving () {      revolve[0]=1。      revolve[2]=1。      angle+=。注意,cube的類(lèi)型是Transform節(jié)點(diǎn),它的rotation 域是外露域,指定本組相對(duì)于上層坐標(biāo)系的旋轉(zhuǎn)值,這里指定的初始值是“1 1 1 0 ”,其中前三個(gè)數(shù)值定義旋轉(zhuǎn)軸,最后一個(gè)值定義旋轉(zhuǎn)角。Script節(jié)點(diǎn)revolver的核心是內(nèi)聯(lián)的ECMAScript腳本函數(shù)。當(dāng)鼠標(biāo)指針移動(dòng)到方塊之上時(shí),接觸檢測(cè)器發(fā)出isOver,和第一節(jié)中采用的isActive事件不同,isOver不需鼠標(biāo)左鈕按下時(shí)即可發(fā)出。鼠標(biāo)指針在cube上面的每次方位變化都引起isOver事件發(fā)送一次,從而導(dǎo)致方塊旋轉(zhuǎn)一次。時(shí)間檢測(cè)器隨著時(shí)間推移不斷產(chǎn)生事件,可用于多種目的,包括:   a. 驅(qū)動(dòng)連續(xù)性的仿真和動(dòng)畫(huà)   b. 控制周期性的活動(dòng)(如每分鐘一
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1