X3D 交互核心在於傳感器產生事件,通過 ROUTE 映射到目標節點字段,類似 VC++ 消息映射機制。本講系統講解四大核心傳感器:TouchSensor、PlaneSensor、SphereSensor、CylinderSensor,附完整代碼示例與效果圖。
關鍵字段/事件:
isActive:按下鼠標左鍵 TRUE,釋放 FALSEisOver:指針進入/離開幾何體表面 TRUE/FALSEhitPoint_changed、hitNormal_changed、hitTexCoord_changed:點擊點座標、法向量、紋理座標touchTime:點擊釋放瞬間產生時間戳

要點:TouchSensor 與被監測幾何體必須共享同一父節點 (Group/Transform)。


利用 touchTime 事件觸發 Script 切換 PointLight.on 字段。
將指針在 XY 平面拖拽映射為幾何體平移,支持邊界約束。
關鍵字段:
minPosition/maxPosition:限制拖拽範圍offset:拖拽結束後相對初始位置的偏移autoOffset:TRUE 累積偏移,FALSE 每次拖拽重置trackPoint_changed:實際指針位置 (無約束)translation_changed:約束後的鎖定位置

二維拖拽映射為三維空間繞原點旋轉,想象一個以點擊點為半徑的虛擬球體。
關鍵字段:
rotation_changed:虛擬球體當前朝向 (四元數/軸角)trackPoint_changed:指針在球面實際位置offset/autoOffset:同 PlaneSensor

二維拖拽映射為繞 Y 軸旋轉。點擊側面 → 圓柱旋轉;點擊頂/底面 → 圓盤旋轉。
關鍵字段:
minAngle/maxAngle:限制旋轉角度範圍diskAngle:判定圓盤/圓柱模式閾值rotation_changed:繞 Y 軸旋轉值代碼結構與 SphereSensor 類似,僅替換節點名稱。
傳感器是 X3D 交互的感知器官,ROUTE 是神經連接。掌握各傳感器的事件語義、約束參數、典型組合模式 (如 TouchSensor+Script 開關、PlaneSensor 拖拽定位、SphereSensor 3D 旋轉),可構建直觀豐富的 3D Web 交互體驗。下一講將深入講解腳本編程技術。