• 沒有找到結果。

虛擬實驗室之主要模組 虛擬實驗室之主要模組 虛擬實驗室之主要模組 虛擬實驗室之主要模組

第三節 第三節

第三節 虛擬實驗室之主要模組 虛擬實驗室之主要模組 虛擬實驗室之主要模組 虛擬實驗室之主要模組

一、固定不動物件之物理屬性

本研究之虛擬物理實驗室主要是模擬真實物理實驗操作,故相關的物件屬性 皆希望能接近真實的情形,圖 4-3-1 為虛擬實驗室當中實驗桌之物理屬性設定,

研究者以此來說明在虛擬物理實驗室當中,固定不動的物件其相關設定,分述如 下:

圖 4-3-1 實驗桌之物理屬性設定 1.Fixed:此選項必須勾選,物件才能固定於原處。

2.Friction:設定物件之摩擦力,若未設定磨擦力或磨擦力為 0,則放置於桌面 的物件會滑動掉落,故此物件磨擦力設定為 0.7。

3.Elasticity:設定物件之彈性係數,彈性係數之數值區間為 0-1,桌面不需與 實驗滑車進行碰撞,故設定為 0。

4.Mass:設定物件之質量,此物件質量參考真實實驗桌設定為 20kg。

5.Start Frozen:設定物件一開始即固定不動。

6.Enable Collision:允許物件相互碰撞,因為桌面不需與實驗滑車進行碰撞,

故設定為 0。

二、滑車物件之物理屬性

本虛擬物理實驗室之主要實驗器材滑車,其物理屬性設定如圖 4-1-2 所示,

分述如下:

圖 4-3-2 滑車之物理屬性設定 1.Fixed:此選項取消勾選,滑車物件才能進行碰撞運動。

2.Friction:本虛擬物理實驗主要觀察物件碰撞情形,若物件與軌道間之磨擦力 為 0,則使用者可專注於觀察物件碰撞運動情形,而不受磨擦力的影響故設定 滑車物件磨擦力為 0。

3.Elasticity:設定物件之彈性係數,彈性係數之數值區間為 0-1,圖 4-8 為完 全彈性碰撞時滑車的設定,故設定為 1。

4.Mass:設定物件之質量,為計算方便滑車物件質量設定為 1kg。

5.Start Frozen:此選項取消勾選,滑車物件才能進行碰撞運動。

6.Enable Collision:允許物件相互碰撞,此選項必須勾選,滑車 1、2 才能相 互碰撞。

三、物件速度測量模組

取得 3D 物件的速度模組,如圖 4-3-3 所示,分述如下:

圖 4-3-3 物件速度測量模組

1. Get Distance:取得兩 3D 物件之間的距離,在此處則是取得滑車 1 與光電管 1 之間的距離,並把取得的距離值傳給 Test。

2.Test:判斷滑車 1 與光電管 1 距離若為 0 則進行下一個 BB,若不為 0 則以迴圈 反覆偵測(設定時若設定距離為 0,則可能會因為電腦偵測速度太慢,而偶爾 會出現無法正確取得速度的情形。因此,實際上設定滑車 1 與光電管 1 距離若 小於 3 即進行下一個 BB 取得物件速度)。

3.Get Physics Speed:取得 3D 物件滑車的速度,並將取得的速度值傳至 Text Display 顯示於畫面上。

四、碰撞偵測模組

在完全彈性碰撞選項中滑車對撞的情形當中,滑車 2 第一次經過光電管 4 時 以物件速度測量模組偵測出其初速度。而對撞後滑車 2 再經過光電管 4 需再測量 出碰撞後之末速度,此時就必須採用碰撞偵測模組,如圖 4-3-4 所示,分述如下:

4-3-4 碰撞偵測模組設定

1.Physics Collision Event:以迴圈反覆偵測兩物件是否產生碰撞,如果兩物 件已經產生碰撞則繼續進行下一個 BB 流程,接著就是進行速度偵測的模組。

五、攝影機導覽模組

圖 4-3-5、圖 4-3-6 為攝影機導覽的程式模組,開始執行後攝影機會追尋 一隱形 box 物件移動,利用矩陣(array)預先輸入幾組位置座標,使 box 物件 依序移動至設定的位置,再搭配 Delayer 讓 box 物件停留於實驗器材數秒鐘,並 顯示器材名稱或操作方式,而攝影機則跟隨 box 物件作停留,如此可達到導覽整 體虛擬環境的目的。此模組內容說明如下所示:

圖 4-3-5 攝影機追尋目標設定

圖 4-3-6 目標物移動設定 1.Set As Active Camera:設定此攝影機為起始攝影機。

2.Set Position:設定攝影機的起始位置。

3.Look At:設定攝影機追尋的目標(box 物件)。

4.Iterator:指定目標矩陣,並設定起始的平行列(Row)與結束的平行列。

5.Move To:設定 box 物件為目標,讓 box 物件移動至矩陣中所預先設定的位置。

6.Delayer:讓程式暫時停留預設的時間後,再繼續執行。

六、mouse camera 模組

以滑鼠控制攝影機視角之模組,如圖 4-3-7 所示;圖中「Rotate」的 Behavior Graph 是攝影機旋轉設定,如圖 4-3-8 所示;而圖中「Forward」的 Behavior Graph 是攝影機移動的設定,如圖 4-3-9 所示,分述如下:

(一)滑鼠控制攝影機視角模組

圖 4-3-7 滑鼠控制攝影機視角之模組設定

1.Mouse Waiter:偵測滑鼠訊號之 BB,按下滑鼠左鍵則引發「Rotate」BB 促使 隱形 Box01 物件產生旋轉;放開滑鼠左鍵則停止「Rotate」BB 停止隱形 Box01 物件產生旋轉;按下滑鼠右鍵則引發「Forward」BB 促使隱形 Box01 物件往前進(以物件的正面前進);而放開滑鼠右鍵則停止「Forward」

BB 停止隱形 Box01 物件往前進。

2.Get World Matrix:取得 Box01 物件世界座標及方位的矩陣。

3.Set World Matrix:依據取得 Box01 物件世界座標及方位的矩陣,設定攝影機 的座標及方位。

4.Set Parent:設定 Box01 為攝影機的父階層。

(二)攝影機旋轉設定

圖 4-3-8 攝影機旋轉設定

1.Priority:設定多個輸入訊號的優先權,按下滑鼠左鍵先回復初始值,再執行 視角轉換動作。

2.Get Mouse Displacement:取得滑鼠的相對移動量。

3.Division:將滑鼠在 X 軸和 Y 軸移動的量作除法的運算,並將數值傳至 Rotate。

4.Rotate:藉由兩個 Division 所傳來的數值,決定繞 X 軸和 Y 軸旋轉的量。

(三)攝影機前進設定

圖 4-3-9 攝影機前進設定

1.Multiplication:將 Z 軸的數值作乘法運算,並將數值傳至 Translate。

2. Translate:藉由兩個 Multiplication 所傳來的數值,決定 Z 軸移動的量。