threejs - 如何在固定的世界轴上旋转对象?

时间:2016-11-10 10:17:26

标签: javascript 3d

function rotateGearModel(axis, value) {
	switch (axis) {
		case 'x':
			riduttore.rotation.x = parseFloat(value);
			$('#gmRotX').attr('value', parseFloat(value).toFixed(3));
			break;
		case 'y':
			riduttore.rotation.y = parseFloat(value);
			$('#gmRotY').attr('value', parseFloat(value).toFixed(3));
			break;
		case 'z':
			riduttore.rotation.z = parseFloat(value);
			$('#gmRotZ').attr('value', parseFloat(value).toFixed(3));
			break;
	}
}

我在threejs中遇到了一些物体旋转问题。 我有一个Collada模型的场景,我需要交互式旋转(用户每个轴有1个滑块,x y z)。 如果用户遵循欧拉订单没有问题,但如果我尝试按照以下步骤旋转模型,我会得到“迷失空间”的体验:))

  1. 旋转X物体局部斧头(旋转似乎与世界斧头对齐);
  2. 在Y对象本地ax上旋转(旋转似乎与世界斧头对齐);
  3. 旋转Z物体局部斧头(旋转似乎与世界斧头对齐);
  4. 在Y ax上改变给定的旋转(步骤2)然后我的旋转似乎与世界斧头不对齐。
  5. 所以我的问题很简单:如何逐步在固定的世界轴上旋转物体?当我将Y轴上的物体旋转90°时,水平的X局部轴变为垂直,那么现在我如何在世界X轴(Z物体轴)上旋转物体?

    现在我用上面的函数旋转我的模型,其中axis是一个标识旋转轴的char,值是弧度。

    谢谢

0 个答案:

没有答案