1
JSONLoaderを使用してJSONモデルをロードするのにThree.jsを使用しています。基本的なやりとりにはTrackballControls.jsも使用しています。オブジェクトを移動(PAN)した場合、回転は異なって動作します。移動後のモデルの中心への回転をどのように変更するか(PAN)?モデルを移動(パン)した後のモデルの中心についての回転
ありがとうございます。
JSONLoaderを使用してJSONモデルをロードするのにThree.jsを使用しています。基本的なやりとりにはTrackballControls.jsも使用しています。オブジェクトを移動(PAN)した場合、回転は異なって動作します。移動後のモデルの中心への回転をどのように変更するか(PAN)?モデルを移動(パン)した後のモデルの中心についての回転
ありがとうございます。
トラックボールコントロールはメッシュではなくカメラを回転させるので、回転はパンニング後に奇妙なようです。トラックボールコントロールを使用する代わりに、四元数に基づいてメッシュを回転します。 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);
}