簡體   English   中英

ThreeJS X旋轉行為異常

[英]ThreeJS X Rotation behaving unexpectedly

我正在制作ThreeJS演示,目前正在使用箭頭鍵旋轉相機。 起初,一切似乎都可以。 我可以成功上下左右旋轉。 但是,當我向左轉然后嘗試向上或向下旋轉時,它會向上和向下旋轉,但並不相對於當前位置-它的作用就好像我根本沒有向左旋轉一樣。

這是我當前的渲染代碼:

function render() {
plane.rotation.y += 0.005;
cube.rotation.z += 0.01;
 cube.rotation.y += 0.01;
if(window.isLeftDown){
    camera.rotation.y += 0.01;
}
if(window.isRightDown){
    camera.rotation.y -= 0.01;
}
if(window.isUpDown){
    camera.rotation.x -= 0.01;
}
if(window.isDownDown){
    camera.rotation.x += 0.01;
}
requestAnimationFrame( render );
renderer.render( scene, camera2, renderTarget, true);
renderer.render( scene, camera );
}

有任何想法嗎?

請參閱此答案以獲取有關three.js中旋轉方式的解釋。

該職位建議將Euler順序更改為YXZ

camera.rotation.order = 'YXZ';

在你的情況,但是,您可能會發現使用rotateX() / rotateY()方法最好。 使用以下模式代替更改歐拉階:

if( window.isLeftDown ){

   camera.rotateY( 0.01 ); // or rotateX( +/- 0.01 )

}

您選擇的解決方案取決於您喜歡的行為。

three.js r.71

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM