THREE.js OrbitControl.js 你能改变y轴的逆旋转吗?

THREE.js OrbitControl.js can you change inverse y axis rotation?

我想知道是否有办法在使用 OrbitControls.js 拖动时反转 y 轴的旋转。 目前展示了一个原型,我被要求将 Y 轴上的拖动运动反转到相反方向,因为它看起来很混乱,但我不知道是否可以在 OrbitControls 上设置参数来执行此操作。

我是 three.js 的菜鸟,请多多包涵 :C

谢谢, Fch

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

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

现在它按照我想要的方式旋转,在 Math.PI 中添加负号。

针对您找到的解决方案,您所做的将起作用,但在代码中进行如此深入的更改是不明智的。它可能会破坏其他看不到您的更改的功能。你真正想做的是改变 rotateLeft 本身,因为这就是 OrbitControls.js 似乎用来确定水平方向的东西。

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

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