第11章 VRML(虛擬現(xiàn)實建模語音)交互與動畫效果的實現(xiàn)_第1頁
第11章 VRML(虛擬現(xiàn)實建模語音)交互與動畫效果的實現(xiàn)_第2頁
第11章 VRML(虛擬現(xiàn)實建模語音)交互與動畫效果的實現(xiàn)_第3頁
第11章 VRML(虛擬現(xiàn)實建模語音)交互與動畫效果的實現(xiàn)_第4頁
第11章 VRML(虛擬現(xiàn)實建模語音)交互與動畫效果的實現(xiàn)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十一章第十一章 交互與動畫效果的實現(xiàn)交互與動畫效果的實現(xiàn) 到目前為止,我們主要還停留在靜態(tài)的虛擬場到目前為止,我們主要還停留在靜態(tài)的虛擬場 景的構(gòu)建上,在現(xiàn)實世界中,萬物都是在變化著的,景的構(gòu)建上,在現(xiàn)實世界中,萬物都是在變化著的, 如太陽的升落,樹葉由綠變黃等等,這些都是動態(tài)如太陽的升落,樹葉由綠變黃等等,這些都是動態(tài) 的,可以稱之為動畫。同樣,作為主體與虛擬世界的,可以稱之為動畫。同樣,作為主體與虛擬世界 進行交互的人類化身,其在虛擬世界中的活動也必進行交互的人類化身,其在虛擬世界中的活動也必 將帶來信息的交互和場景等的變化。因此,必要得將帶來信息的交互和場景等的變化。因此,必要得 動畫

2、措施和交互手段也是虛擬世界的重要組成部分。動畫措施和交互手段也是虛擬世界的重要組成部分。 本章將重點介紹本章將重點介紹VRML中這些效果的實現(xiàn)。中這些效果的實現(xiàn)。 11.1 動畫效果動畫效果 v VRML中提供了多個用來控制動畫的插補器,以及控制時間的時間傳 感器。 v 11.1.1 TimeSensor節(jié)點節(jié)點時間傳感器時間傳感器 v 在現(xiàn)實世界中,世界萬物的變化往往是自動的,而且是有一定規(guī)律的 ,即不是隨人的改變而改變的,這就需要在VRML虛擬世界中,創(chuàng)建 出能自動變化不需要認為改變的造型??梢酝ㄟ^設(shè)定時間規(guī)律變化來 控制造型變化。而控制時間按規(guī)律變化最常見的就是時間傳感器。時 間傳感器T

3、imeSensor節(jié)點的作用就是創(chuàng)建一個虛擬時鐘,并對其他 節(jié)點發(fā)送時間值。 11.1 動畫效果動畫效果 v 其節(jié)點語法定義如下: TimeSensor EventOutSFBoolisActive EventOutSFTimetime EvetnOutSFTimecycleTime EventOutSFFloatfraction_changed ExposedFieldSFTimecycleInterval1.0 ExposedFieldSFBoolenabledTRUE ExposedFieldSFTimestartTime0 ExposedFieldSFTimestopTime0 Exp

4、osedFieldSFBoolloopFALSE 11.1 動畫效果動畫效果 v cycleInterval域的值指定了一個時間長度,用來說明這個時間傳感器 從0.0時刻到1.0時刻之間的周期間隔,單位為秒。該域值必須大于0.0 ,其缺省值為1.0秒。 v Enabled域的值指定了時間傳感器的打開和關(guān)閉。如果該域值為 TRUE,時間傳感器被打開;域值為FALSE時,時間傳感器被關(guān)閉。 其缺省值為TRUE。 v Loop域的值指定了時間傳感器是否循環(huán)輸出。如果該域值為TRUE, 則時間傳感器將從0.0到1.0這段時間間隔內(nèi)輸出浮點時刻。而在時間 間隔的結(jié)尾,返回到0.0,開始新的循環(huán)。如果該域

5、值為FALSE,時 間傳感器不循環(huán),只從0.0到1.0輸出一次。 11.1 動畫效果動畫效果 v StartTime域的值指定了時間傳感器開始輸出事件的絕對時間。該域值 的缺省值為0.0秒。 v StopTime域的值指定了時間傳感器停止輸出事件的絕對時間。該域值 的缺省值為0.0秒。 v 同AudioClip節(jié)點中的域一樣,startTime,stopTime,cycleInterval和 loop域值共同控制著時間傳感器的事件輸出。當(dāng)這4個域同時使用時 ,根據(jù)這4個域值之間的關(guān)系,決定時間傳感器的工作狀態(tài)。 v 事件出口isActive在時間傳感器開始運行的同時向外輸出TRUE值,在 時間

6、傳感器停止運行時向外輸出FALSE值。 11.1 動畫效果動畫效果 v 事件出口time在時間傳感器運行時,不斷輸出一個絕對時間值。 v 事件出口cycleTime在時間傳感器每次循環(huán)的開始時輸出一個當(dāng)前的 時間絕對值。 v 事件出口fraction_changed在時間傳感器運行時,輸出0.0和1.0之間 的浮點時刻。 v TimeSensor節(jié)點在VRML中并不產(chǎn)生任何造型和可視效果。該節(jié)點可 以包含在任何組節(jié)點中作為子節(jié)點,但獨立于所選用的坐標(biāo)系。 11.1.2 控制動畫的插補器控制動畫的插補器 v 插補器(Interpolator)節(jié)點是為線性關(guān)鍵幀動畫而設(shè)計的。其采用一組 關(guān)鍵數(shù)值,

7、且每個關(guān)鍵值對應(yīng)一種狀態(tài)。這個狀態(tài)允許以各種形式表 示,如SFVec3f或SFVecColor。瀏覽器會根據(jù)這些關(guān)鍵狀態(tài)生成連續(xù) 的動畫。一般來說,瀏覽器在兩個相鄰關(guān)鍵幀之間生成的連續(xù)幀是線 性的。 v 插補器節(jié)點根據(jù)其所插值的類型不同而分為6種:顏色插補器 (ColorInterpolator)、坐標(biāo)插補器(CoordinateInterpolator)、法線插補 器(NorMalInterpolator)、朝向插補器(OrientationInterpolator)、位置 插補器(PositionInterpolator)、標(biāo)量插補器(ScalarInterpolator)。 11.1.2

8、 控制動畫的插補器控制動畫的插補器 v 11.1.2.1 ColorInterpolator節(jié)點節(jié)點 v ColorInterpolator節(jié)點是用來表示顏色間插值的節(jié)點。該節(jié)點并不創(chuàng)建造型, 在VRML場景中是看不見的,該節(jié)點可以作為任何編組節(jié)點的子節(jié)點,但又 獨立于所使用的坐標(biāo)系,即不受坐標(biāo)系的限制。 v 其節(jié)點語法定義如下: ColorInterpolator ExposedFieldMFFloatkey ExposedFieldMFColorkeyValue EventInSFFloatset_fraction EventOutSFColorvalue_changed 11.1.2 控

9、制動畫的插補器控制動畫的插補器 v key域的值表示一系列的關(guān)鍵的、浮點時刻值,與接收到的 set_fraction對應(yīng)。時刻值一般在0.0至1.0區(qū)間內(nèi)取值,關(guān)鍵時刻值可 以是任何形式的正或負浮點值,但其值必須以非遞減的方式表示。其 默認值為空格。 v KeyValue域的域值表示一系列的關(guān)鍵RGB色彩值。當(dāng)接收到 set_fraction eventIn時,用它來插值value_change輸出。每個RGB色 彩都是由在0.0至1.0區(qū)間內(nèi)的三個浮點數(shù)所表示的,它們分別表示混 合色中紅、綠、藍的數(shù)值。其默認值為一個空的列表。 v 事件入口set_fraction收到一個時刻值時,Color

10、Interpolator節(jié)點就在 關(guān)鍵色彩值和它們相應(yīng)的關(guān)鍵時間值的基礎(chǔ)上計算出一個RGB色彩值 ,并通過value_changed事件出口輸出該RGB色彩值。 v 事件出口value_changed用來輸出計算后的RGB色彩值。 11.1.2 控制動畫的插補器控制動畫的插補器 v 11.1.2.2 CoordinateInterpolator節(jié)點節(jié)點 v CoordinateInterpolator節(jié)點是表示坐標(biāo)插值的節(jié)點,該節(jié)點在一組MFVec3f 值之間進行線性插值,通過使用該節(jié)點,一個造型的組成坐標(biāo)可以變化。同 ColorInterpolator節(jié)點一樣,CoordinateInter

11、polator節(jié)點也不創(chuàng)建任何造型, 在VRML場景中也是不可見的。 v 其節(jié)點語法定義如下: CoordinateInterpolator ExposedFieldMFFloatkey ExposedFieldMFVec3fkeyValue EventInSFFloatset_fraction EventOutMFVec3fvalue_changed 11.1.2 控制動畫的插補器控制動畫的插補器 v key域提供了一張關(guān)鍵時間、時刻和浮點時間的列表,與接收到的 set_fraction對應(yīng)。時刻值在0.0和1.0之間取值,然而關(guān)鍵時刻值可以 是任意大小的正值或負值,不過必須以遞增的順序排列

12、,其默認值是 一張空列表。 v KeyValue域提供了一張關(guān)鍵三維坐標(biāo)的列表。每一個坐標(biāo)都包含三個 浮點數(shù)值,分別為此向量的X、Y和Z分量。KeyValue域可提供兩個或 更多的關(guān)鍵坐標(biāo)點,如果有N個時刻值和每個時刻值對應(yīng)了的M個關(guān) 鍵坐標(biāo)點,那么該域就包含了NM個坐標(biāo)點。其默認值為一張空列表 。 11.1.2 控制動畫的插補器控制動畫的插補器 v 當(dāng)事件入口set_fraction接收到一個時刻值時, CoordinateInterpolator節(jié)點就根據(jù)關(guān)鍵時刻列表和它們相 對應(yīng)的關(guān)鍵坐標(biāo)子列表計算出一張坐標(biāo)的子列表,并通過 value_changed事件出口輸出新的坐標(biāo)列表。 v 坐標(biāo)

13、插補器實現(xiàn)的是坐標(biāo)點的移動動畫,通過 CoordinateInterpolator節(jié)點,可使VRML中的物體造型上 的各個坐標(biāo)點有獨自的運動軌跡,即可使物體造型改變。 11.1.2 控制動畫的插補器控制動畫的插補器 v 11.1.2.3 NormalInterpolator節(jié)點節(jié)點 v NormalInterpolator節(jié)點是表示法向量的節(jié)點但不創(chuàng)建任何造型。該節(jié) 點在Normal節(jié)點中的法向量矢量中進行插值,以產(chǎn)生動畫效果。 v 其語法定義如下: NormalInterpolator ExposedFieldMFFloatkey ExposedFieldMFVec3fkeyValue Ev

14、entInSFFloatset_fraction EventOutMFVec3fvalue_changed 11.1.2 控制動畫的插補器控制動畫的插補器 v key域的值指定了一個關(guān)鍵浮點時刻列表。與接收到的set_fraction對 應(yīng)。該浮點值一般在0.0和1.0之間取值,其也可以是任意大小的正、 負浮點數(shù)。關(guān)鍵時刻必須以非遞減的順序排列。其默認值為一張空列 表。 v KeyValue域的值指定了一個關(guān)鍵法向量矢量列表。每個法向量矢量都 包含三個浮點數(shù),分別為此向量的X、Y和Z分量。同 CoordinateInterpolator節(jié)點中keyValue域一樣可提供兩個或更多的法 向量矢量

15、。其默認值為一空列表。 v 當(dāng)事件入口set_fraction接收到一個時刻值時,NormalInterpolator節(jié) 點根據(jù)關(guān)鍵時刻列表和其對應(yīng)的關(guān)鍵法向量矢量列表,計算出一個法 向量矢量子列表,并通過value_changed事件出口輸出新算出的法向 量矢量列表。 11.1.2 控制動畫的插補器控制動畫的插補器 v 11.1.2.4 PositionInterpolator節(jié)點節(jié)點 v PositionInterpolator節(jié)點用來描述一系列用于動畫的關(guān)鍵值。該節(jié)點 不創(chuàng)建任何造型,在一組SFVec3f值之間進行線性插值。適合于對平 移進行插值。 v 其語法結(jié)構(gòu)定義如下: Positi

16、onInterpolator ExposedFieldMFFloatkey ExposedFieldMFVec3fkeyValue EventInSFFloatset_fraction EventOutSFVec3fvalue_changed 11.1.2 控制動畫的插補器控制動畫的插補器 v key域的值指定了一張浮點時刻關(guān)鍵值列表,與接收到的set_fraction 對應(yīng),時刻值一般在0.0和1.0之間取值,然而關(guān)鍵時刻值可以是任意 大小的正值或負值,不過必須以遞增的順序排列,其默認值是一張空 列表。 v KeyValue域的值指定了一個關(guān)鍵位置的列表。每一個關(guān)鍵位置都是一 組由X、Y和Z

17、浮點值組成的三維坐標(biāo)或平移距離。在一些運用中,關(guān) 鍵值也可以是X、Y和Z的比例要素或其他三個浮點值的組。其默認值 是一張空列表。 v 當(dāng)事件入口set_fraction接收到一個時刻值時,PositionInterpolator節(jié) 點計算出基于關(guān)鍵位置表和相關(guān)的關(guān)鍵時刻的一個位置,并通過 value_changed事件出口輸出新的位置列表。 11.1.2 控制動畫的插補器控制動畫的插補器 v 11.1.2.5 ScalarInterpolator節(jié)點節(jié)點 v ScalarInterpolator節(jié)點描述的是在動畫中使用的一些列關(guān)鍵色彩值。 該節(jié)點不創(chuàng)建任何造型,在一組SFFloat值之間進行線

18、性插值,這個 插值適合于用簡單的浮點值定義的任何參數(shù)。使用該節(jié)點,能夠動畫 他的透明度。 v 其語法定義如下: ScalarInterpolator ExposedFieldMFFloatkey ExposedFieldMFFloatkeyValue EventInSFFloatset_fraction EventOutSFFloatvalue_changed 11.1.2 控制動畫的插補器控制動畫的插補器 v key域的值提供了一張浮點時刻關(guān)鍵值列表,與接收到的set_fraction 對應(yīng)。時刻值一般在0.0和1.0之間取值,然而關(guān)鍵時刻值可以是任意 大小的正值或負值,不過必須以遞增的順序

19、排列,其默認值是一張空 列表。 v KeyValue域的值指定了一系列關(guān)鍵浮點值。其默認值為一個空的序列 。 v 當(dāng)事件入口set_fraction接收到一個時刻值時,ScalarInterpolator節(jié)點 根據(jù)關(guān)鍵值的序列和它們對應(yīng)的關(guān)鍵時刻值,計算一個浮點值,并通 過value_changed事件出口輸出計算后的浮點值。 v ScalarInterpolator節(jié)點還可以用來控制VRML造型的透明度,通過控 制Material節(jié)點的transparency域值,是造型的透明度改變。 11.1.2 控制動畫的插補器控制動畫的插補器 v 11.1.2.6 OrientationInterpo

20、lator節(jié)點節(jié)點 v OrientationInterpolator節(jié)點用來描述一系列在動畫中使用的旋轉(zhuǎn)值。 該節(jié)點不創(chuàng)建任何造型,在一組SFRotation值之間進行插值,通過使 用該節(jié)點,可以使造型旋轉(zhuǎn)。 v 其語法定義如下: OrientationInterpolator ExposedFieldMFFloatkey ExposedFieldMFVec3fkeyValue EventInSFFloatset_fraction EventOutMFVec3fvalue_changed 11.1.2 控制動畫的插補器控制動畫的插補器 v key域的值指定了一張浮點時刻關(guān)鍵值列表,與接收到的

21、set_fraction 對應(yīng)。時刻值一般在0.0和1.0之間取值,然而關(guān)鍵時刻值可以是任意 大小的正值或負值,不過必須以遞增的順序排列。其默認值是一張空 列表。 v KeyValue域的值指定了一個旋轉(zhuǎn)關(guān)鍵值的列表。每一個旋轉(zhuǎn)關(guān)鍵值是 一個4個值的組。前三個值指定了一個旋轉(zhuǎn)軸的X、Y和Z分量,第4個 值指定了旋轉(zhuǎn)軸的一個旋轉(zhuǎn)角度。其默認值是一張空列表。 v 當(dāng)事件入口set_fraction接收到一個時刻值時,OrientationInterpolator 節(jié)點根據(jù)關(guān)鍵時刻列表和與其對應(yīng)的關(guān)鍵旋轉(zhuǎn)值列表,計算出一個關(guān) 鍵旋轉(zhuǎn)值子列表,并通過value_changed事件出口輸出新算出的旋轉(zhuǎn)

22、列表。 11.2 交互功能交互功能 v 交互功能是VRML的一個重要特點,沒有交互功能的VRML場景是不能吸 引人的,因為能使人有身臨其境的感覺的主要功能就是交互。雖然利 用前面介紹的不同節(jié)點能創(chuàng)建出相當(dāng)逼真的VRML場景,但這只是靜態(tài) 的,即使是動畫也是固定的,即在該VRML文件一運行就已確定,瀏覽 者無法進行任何選擇,更談不上身臨其境了。 v 通過VRML特有的交互功能,瀏覽者可以根據(jù)需要隨時改變VRML場 景,比如搬動一個椅子等。 11.2.1 接觸檢測器接觸檢測器 v 在VRML中虛擬世界和用戶之間的交互是通過一系列檢測器來實現(xiàn) 的,通過這些檢測器節(jié)點,使瀏覽器感知用戶的各種操作,比如

23、開 門等,這樣用戶就可以和VRML虛擬世界中的三維對象進行直接交 互。觸動檢測器是用來檢測用戶的觸動動作的,其中包括 TouchSensor節(jié)點,PlaneSensor節(jié)點,CylinderSensor節(jié)點和 SphereSensor節(jié)點。 v 11.2.1.1 TouchSensor節(jié)點節(jié)點 v TouchSensor節(jié)點創(chuàng)建了一個檢測用戶動作并將其轉(zhuǎn)化后輸出,以 觸發(fā)一個動畫的檢測器。它是用來測試用戶觸摸事件的檢測器。該 節(jié)點可以為任何成組節(jié)點的子節(jié)點,并感知用戶對該組節(jié)點的動作 。 11.2.1 接觸檢測器接觸檢測器 v 其節(jié)點語法定義如下: TouchSensor EventOutSF

24、BoolisOver EventOutSFVec3fhitPoint_changed EventOutSFVec3fhitNormal_changed EventOutSFVec3fhitTexCoord_changed EventOutSFBoolisActive EventOutSFTimetouchTime ExposedFieldSFBoolenabled TRUE 11.2.1 接觸檢測器接觸檢測器 v isOver事件出口是用來當(dāng)用戶的鼠標(biāo)位于被感應(yīng)的三維對象上方時, 將引發(fā)isOver事件,且該事件值為TRUE。反之,當(dāng)用戶的鼠標(biāo)不在 被感應(yīng)的三維對象上方時,該事件值為FALSE

25、。 v HitPoint_changed事件出口用來當(dāng)用戶在被感應(yīng)的幾何圖形上點擊鼠 標(biāo)時發(fā)送該值。其值表示對象上點的坐標(biāo)。 v HitNormal_changed事件出口用來當(dāng)用戶在被感應(yīng)的幾何圖形上點擊 鼠標(biāo)時發(fā)送該值。其值表示對象上點的表面法向量。 v Enabled域的值指定了是否激活該檢測器。當(dāng)該域值為TRUE時,該 檢測器允許被用戶激活,并產(chǎn)生輸出;而當(dāng)該域值為FALSE時,用戶 無法激活該檢測器。該域值的缺省值為TRUE。 11.2.1 接觸檢測器接觸檢測器 v HitTexCoord_changed事件出口用于當(dāng)用戶位于被感應(yīng)的幾何圖形上 點擊鼠標(biāo)時,發(fā)送該值。其值表示對象上點

26、的紋理坐標(biāo)。紋理坐標(biāo)功 能是VRML中很重要的一個功能。我們可以使用這一功能實現(xiàn)像 HTML網(wǎng)頁一樣,在一幅貼圖上面劃分多個區(qū)域,然后將每個區(qū)域設(shè) 置各自的交互。 v IsActive事件出口用來當(dāng)用戶點擊對象時,檢測器被激活,該域值由 FALSE變?yōu)門RUE;反之當(dāng)檢測器失效時,該域值將由TRUE變?yōu)?FALSE。 v TouchTime事件出口用來當(dāng)isOver為TRUE,而isActive為FALSE時發(fā) 送該事件,所發(fā)送的值時系統(tǒng)當(dāng)前的時間。 11.2.1 接觸檢測器接觸檢測器 v 11.2.1.2 PlaneSensor節(jié)點節(jié)點 v PlaneSensor節(jié)點創(chuàng)建了一個可將瀏覽者的動

27、作轉(zhuǎn)換成適于造型的輸 出的檢測器。該節(jié)點可以為任何成組節(jié)點的子節(jié)點,用以感知用戶對 該組節(jié)點的動作,使造型按用戶的動作平移。 v 其節(jié)點語法定義如下: PlaneSensor EventOutSFBoolisActive EventOutSFVec3ftrackPoint_changed EventOutSFVec3ftranslation_changed 11.2.1 接觸檢測器接觸檢測器 ExposedFieldenabledTRUE ExposedFieldSFVec3foffset0 0 0 ExposedFieldSFBoolautoOffsetTRUE ExposedFieldSF

28、Vec2fmaxPosition-1 1 ExposedFieldSFVec2fminPosition0 0 v trackPoint_changed事件出口用來當(dāng)檢測器被激活并且用戶單擊鼠標(biāo) 時,發(fā)送該值。其值代表的是虛擬平面上的當(dāng)前單擊點。 11.2.1 接觸檢測器接觸檢測器 v Translation_changed事件出口用來當(dāng)檢測器被激活并且用戶單擊鼠標(biāo) 時發(fā)送該值。其值代表的是虛擬平面上的平移坐標(biāo)值。 v Offset域的值用于設(shè)置偏移量,即每一次輸出位置時的偏移量。當(dāng) autoOffset字段的值為TRUE時,人為設(shè)置的偏移量被忽略。 v AutoOffset域的值為TRUE時,

29、VRML程序會根據(jù)用戶實際拖拉鼠標(biāo)的 情況,計算出每一次平移的偏移量。 v MaxPosition域的值用來設(shè)置檢測器的最大位置值。 v MinPosition域的值用來設(shè)置檢測器的最小位置值。 11.2.1 接觸檢測器接觸檢測器 v 11.2.1.3 CylinderSensor節(jié)點節(jié)點 v CylinderSensor節(jié)點用來創(chuàng)建一個將用戶動作轉(zhuǎn)換成造型圍繞Y軸旋 轉(zhuǎn)動畫的檢測器,該節(jié)點可作為任何組節(jié)點的子節(jié)點。 v 其節(jié)點語法定義如下: CylinderSensor EventOutSFBoolisActive EventOutSFVec3ftrackPoint_changed Even

30、tOutSFRotationrotation_changed ExposedFieldSFBoolenabledTRUE ExposedFieldSFFloatoffset0 11.2.1 接觸檢測器接觸檢測器 ExposedFieldSFBoolautoOffsetTRUE ExposedFieldSFFloatmaxAngle-1 ExposedFieldSFFloatminAngle0 ExposedFieldSFFloatdiskAngle0.262 v isActive事件出口用來當(dāng)檢測器被激活時,設(shè)置該值為TRUE,表示當(dāng) 前用戶正在進行拖拉操作。否則為FALSE。 v Track

31、Point_changed事件出口用于當(dāng)前用戶激活檢測器并進行拖拉操 作時,將引發(fā)該事件值。其值代表圓柱體表面的坐標(biāo)。 11.2.1 接觸檢測器接觸檢測器 v Rotation_changed事件出口用于當(dāng)用戶激活檢測器并進行拖拉操作時 ,將引發(fā)該事件值。該值時虛擬的圓柱體的旋轉(zhuǎn)值。 v Enable域的值為TRUE時,檢測器才允許被用戶激活。 v Offset域的值指定了物體旋轉(zhuǎn)的偏移量,即每一次增加的角度值。當(dāng) autoOffset字段的值為TRUE時,人為設(shè)置的偏移量將被忽略。 v AutoOffset域的值為TRUE時,VRML程序會根據(jù)用戶實際拖拉鼠標(biāo)的 情況,計算出每一次旋轉(zhuǎn)的偏移

32、量。 v MaxAngle域的值定義檢測器輸出的最大角度。 v MinAngle域的值定義檢測器輸出的最小角度。 v DiskAngle域的值定義檢測器在圓盤行為之間切換角度。 11.2.1 接觸檢測器接觸檢測器 v 11.2.1.4 SphereSensor節(jié)點節(jié)點 v SphereSensor節(jié)點創(chuàng)建了一個將用戶動作轉(zhuǎn)換為造型繞某一點旋轉(zhuǎn) 的動畫的檢測器,該節(jié)點可作為其他組節(jié)點的子節(jié)點。 v 其節(jié)點語法定義如下: SphereSensor EventOuttrackPoint_changed EventOutrotation_changed ExposedFieldSFBoolenable

33、dTRUE ExposedFieldSFRotationoffset0 1 0 0 ExposedFieldSFBoolautoOffsetTRUE 11.2.1 接觸檢測器接觸檢測器 v trackPoint_changed事件出口用于當(dāng)檢測器被激活并且用戶單擊鼠標(biāo) 時,發(fā)送該值。其值代表的是虛擬球體表面上的當(dāng)前單擊點。 v Rotation_changed事件出口用戶當(dāng)檢測器被激活并且用戶單擊鼠標(biāo)時 ,發(fā)送該值。其值代表的是虛擬球體的旋轉(zhuǎn)值。 v Offset域的值指定了檢測器每一次輸出的旋轉(zhuǎn)量。當(dāng)autoOffset字段設(shè) 置為TRUE時,本字段的設(shè)置值將被忽略。 v AutoOffse

34、t域的值指定該旋轉(zhuǎn)值是否發(fā)生偏移。 11.2.2 感知檢測器感知檢測器 v 除了觸動檢測器外,能產(chǎn)生交互功能的節(jié)點還有感知檢測器。與觸動 檢測器不同的是,感知檢測器是感知用戶與造型的接近程度。感知檢 測器包括VisibilitySensor節(jié)點,ProximtitySensor節(jié)點和Collision節(jié)點 。 v 11.2.2.1 VisibilitySensor節(jié)點節(jié)點 v VisibilitySensor節(jié)點用來從觀察者的方向和位置感知一個長方體區(qū)域 在當(dāng)前坐標(biāo)系中何時才是可視的。該節(jié)點可作為任意組節(jié)點的子節(jié)點 。 11.2.2 感知檢測器感知檢測器 v 其語法定義如下: VisibilitySensor ExposedFieldSFBoolenabledTRUE ExposedFieldSFVec3fcenter0.0 0.0 0.0 ExposedFieldSFVec3fsize0.0 0.0 0.0 EventOutSFBoolisActive EventOutSFTimeenterTime EventOutSFTimeexitTime 11.2.2 感知檢測器感知檢測器 v center域的值指定了

溫馨提示

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

評論

0/150

提交評論