2015-03-09 3 views
1

Я хотел бы знать, есть ли способ инвертировать поворот оси y при перетаскивании с использованием OrbitControls.js. В настоящее время представлен прототип, и мне было предложено инвертировать движение перетаскивания по оси Y на противоположное, поскольку оно выглядит запутанным, но я понятия не имею, есть ли параметры, которые я могу установить на OrbitControls для этого.THREE.js OrbitControl.js вы можете изменить обратное вращение оси y?

Im нуб с three.js, пожалуйста, медведь со мной: C

Спасибо, Fch

редактировать: я нашел способ сделать это, но им не уверен, что его лучший, на линии 405 на OrbitControls.js я изменил его:

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

и теперь он вращается так, как я хотел, чтобы он, добавил минус к Math.PI.

ответ

2

В ответ на решение, которое вы нашли, то, что вы сделали, будет работать, но не разумно внести изменения до сих пор в коде. Это может нарушить другие функции, которые не будут видеть ваши изменения. То, что вы действительно хотите сделать, это изменить сам rotateLeft, так как это, по-видимому, используется OrbitControls.js, чтобы определить, в каком направлении идти горизонтально.

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

Таким образом, логика согласована во всех случаях, когда OrbitControls.js использует rotateLeft.

+0

Это изделие очень полезно. – nosh247

Смежные вопросы