-1

私は立方体があり、いくつかのボタン(矢印)で回転できるthree.jsのプロジェクトに取り組んでいます。回転は機能しますが、いくつかの回転の後、正しい方向に回転しなくなります。おそらく立方体の軸がずれているからでしょうか?しかし、これは私を少し混乱させます..

キューブをいくつかのコントロールで上下左右に回転できるようにする必要があります。これは基本的に現在の仕組みです。

「右」などの方向が押されると、mesh.rotation.y が 90 度の角度で回転するまで、tween.js で mesh.rotation.y を更新します。

//SCENE, MESH,.. SETUP
...

function rotateRight(){
   var start = {x:cubeMesh.rotation.x, y:cubeMesh.rotation.y, z:cubeMesh.rotation.z};
   //RIGHT: y + 90°
   var end = {x:cubeMesh.rotation.x, y:cubeMesh.rotation.y + degreeToRadians(90),
              z:cubeMesh.rotation.z};

   var tween = new TWEEN.Tween(start)
      .to(end, 1000)
      .easing( TWEEN.Easing.Exponential.InOut )
      .onUpdate(function(){
         cubeMesh.rotation.x = this.x;
         cubeMesh.rotation.y = this.y;
         cubeMesh.rotation.z = this.z;
       })
   .start();
}

function animateScene(){
    requestAnimationFrame(animateScene);
    TWEEN.update();
    renderer.render(scene, camera);
}

この立方体を正しい方向に回転させるには、何を変更する必要がありますか? 立方体の軸がずれないように固定できますか? ワールド軸とオブジェクト軸について読んだことがありますが、これは変更する必要がありますか?どうすれば実装できますか?

前もって感謝します!

4

2 に答える 2

0

申し訳ありませんが、コメントできません。これは確かに完璧な答えではありませんが、ローテーションに問題がある場合は、トゥイーンが正しくない可能性がありますか? 私の目を引くのは、関数が1つの軸でのみ回転を行っているにもかかわらず、3つの軸すべてを更新していることです。たぶん、x と z を残して、正しい軸だけを更新する必要がありますか? 実際に何を変更しているのかを知っているので、これも問題の解決に役立つかもしれません。ただし、それは単なるアイデアです。

于 2013-07-19T09:11:47.510 に答える