我想知道是否有办法在使用OrbitControls.js拖动时反转y轴的旋转。 目前呈现一个原型,我被要求将Y轴上拖动的运动反转为相反,因为它看起来令人困惑,但我不知道是否有可以在OrbitControls上设置的参数来执行此操作。
我是一个有三个人的菜鸟。请耐心等待:C
谢谢, FCH
编辑:我找到了一种方法来做到这一点,但我不确定它是最好的,在 OrbitControls.js 的第405行,我将其更改为:
scope.rotateLeft( 2 * -Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );
现在它以我想要的方式旋转,将负值添加到Math.PI
。
答案 0 :(得分:2)
为了回应您找到的解决方案,您所做的工作将起作用,但在代码中进行此类更改并不明智。它可能会破坏其他无法看到您的更改的功能。你真正想做的是改变rotateLeft
本身,因为OrbitControls.js似乎用它来确定水平方向。
this.rotateLeft = function ( angle ) {
if ( angle === undefined ) {
angle = getAutoRotationAngle();
}
thetaDelta -= angle; // change this to opposite
};
这样,逻辑在OrbitControls.js使用rotateLeft的所有实例中都是一致的。