【问题标题】:THREE.js OrbitControl.js can you change inverse y axis rotation?THREE.js OrbitControls.js 你能改变反转y轴旋转吗?
【发布时间】:2015-05-11 03:51:43
【问题描述】:

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

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

谢谢, Fch

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

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

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

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    作为对您找到的解决方案的响应,您所做的将起作用,但在代码中进行到目前为止的更改是不明智的。它可能会破坏其他看不到您的更改的功能。您真正想要做的是更改 rotateLeft 本身,因为这似乎是 OrbitControls.js 用来确定水平方向的内容。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2018-03-28
      • 2020-10-04
      • 2013-07-28
      • 1970-01-01
      相关资源
      最近更新 更多