[英]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.