THREE.js OrbitControl.js可以改变反y轴旋转吗?

时间:2015-03-09 20:42:25

标签: javascript three.js

我想知道是否有办法在使用OrbitControls.js拖动时反转y轴的旋转。 目前呈现一个原型,我被要求将Y轴上拖动的运动反转为相反,因为它看起来令人困惑,但我不知道是否有可以在OrbitControls上设置的参数来执行此操作。

我是一个有三个人的菜鸟。请耐心等待:C

谢谢, FCH

编辑:我找到了一种方法来做到这一点,但我不确定它是最好的,在 OrbitControls.js 的第405行,我将其更改为:

scope.rotateLeft( 2 * -Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );

现在它以我想要的方式旋转,将负值添加到Math.PI

1 个答案:

答案 0 :(得分:2)

为了回应您找到的解决方案,您所做的工作将起作用,但在代码中进行此类更改并不明智。它可能会破坏其他无法看到您的更改的功能。你真正想做的是改变rotateLeft本身,因为OrbitControls.js似乎用它来确定水平方向。

this.rotateLeft = function ( angle ) {
    if ( angle === undefined ) {
        angle = getAutoRotationAngle();
    }
    thetaDelta -= angle; // change this to opposite
};

这样,逻辑在OrbitControls.js使用rotateLeft的所有实例中都是一致的。

相关问题