2016-09-16 11 views
1

JSONLoaderを使用してJSONモデルをロードするのにThree.jsを使用しています。基本的なやりとりにはTrackballControls.jsも使用しています。オブジェクトを移動(PAN)した場合、回転は異なって動作します。移動後のモデルの中心への回転をどのように変更するか(PAN)?モデルを移動(パン)した後のモデルの中心についての回転

ありがとうございます。

答えて

1

トラックボールコントロールはメッシュではなくカメラを回転させるので、回転はパンニング後に奇妙なようです。トラックボールコントロールを使用する代わりに、四元数に基づいてメッシュを回転します。 MouseMoveイベントで はfalseに設定isDraggingマウスアップイベントでは、このコード

trackBallControls.noRotate = true; 
      if (isDragging === true) { 
       var deltaMove = { 
        x: event.offsetX -previousMousePosition.x, 
        y: event.offsetY -previousMousePosition.y 
       }; 
       var deltaRotationQuaternion = new THREE.Quaternion() 
         .setFromEuler(new THREE.Euler(toRadians(deltaMove.y * 0.3), 
           toRadians(deltaMove.x * 0.3), 
           0, 
           'XYZ' 
           )); 
       if (event.which === 1) { 
        mesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, mesh.quaternion); 
       } 
      } 
      previousMousePosition = { 
       x: event.offsetX, 
       y: event.offsetY 
      }; 

が含まれます。 mousedownでは、isDraggingをtrueに設定します。

function toRadians(angle) { 
      return angle * (Math.PI/180); 
     } 
関連する問題