使用OrbitControls
在three.js中旋轉場景,我想要一個planeMesh
對象始終面向相機。我正在嘗試以下內容,但它只是瘋狂地旋轉(似乎處理器密集型),但它看起來像當我用鼠標圍繞場景(移動相機)時,它會試圖保持前方。我試圖讓它只在相機移動時慢慢重新定位。我在這裏做錯了什麼?three.js:平滑地旋轉與OrbitControls相反的對象camera.rotation.y
下面是相關的JS:
function animate() {
requestAnimationFrame(animate);
planeMesh.rotation.y -= Math.PI /camera.rotation.y;
render();
}
我也試過以下(沒有也行):
function animate() {
requestAnimationFrame(animate);
var a = camera.rotation.y;
var b = camera.rotation.y;
if (a == b) {
planeMesh.rotation.y -= Math.PI /camera.rotation.y;
} else {
}
render();
a = camera.rotation.y;
}
**編輯 我想camera
和planeMesh
保持目前的關係。 這裏是開始旋轉: planeMesh Rotation y = 3.141592653589793
camera Rotation y = -0.06894749489830237
不過,我覺得相機使用THREE.Euler,並planeMesh使用Math.PI旋轉,所以......使用不同的系統,這兩個旋轉測量?
當然,如果我能得到起點的差異,那麼只有當差異更大,並且差異比起始差異更大時才更改planeMesh rotation.y
,那麼我將完成我的目標。但我該怎麼做?我是否必須以某種方式翻譯這兩種測量系統?當我旋轉場景時,相機確實使用了不同的測量比例。
啊!輝煌!很簡單。謝謝! –