因此,這裏是three.js主人的矢量,矩陣,旋轉,四元數問題!three.js父親子目標跟蹤
我有一個父對象在position(0,0,275)
與direction(0,0,-1)
,+ y和rotation(0,0,0)
。
連接到母體是關係的子對象:
rel_position(.5, 0, 0)
rel_rotation(0, 0, 0)
我也有一個目標在場景:
position(0, 100, 0)
考慮船舶(父)與俯仰,偏航和滾轉。它有一個帶有俯仰和偏航的炮塔(小孩)。炮塔需要以給定的轉速(弧度/秒)跟蹤目標。
我花了5天試圖獲得一個適當的跟蹤算法。我能做的最好的辦法就是手動刪除父母和孩子的matrixAutoUpdate功能,更新矩陣。然後使用child.matrixWorld爲當前的子輪換創建旋轉矩陣或四元數。然後我可以創建一個輔助Object3D,它從子位置查看目標。我可以在孩子和輔助Object3D之間區別,並以rad/s爲基礎來取代四元數。但是,當我添加滾動到父項或目標被旋轉到八分圓(+, +, +)
之外時,子旋轉(或四元數)計算會導致滾動旋轉。
任何方向上的一個孩子Object3D的跟蹤算法將非常感激。我的即將開展的項目將引用您的努力。
謝謝你的時間!
獲取建議!我採取了類似的方法來解決昨天發現的最終解決方案。我會嘗試你的代碼,看看我是否可以實現一個變體,因爲它比我的解決方案更優雅。見下文! – 2013-03-28 13:44:28