всегда вращать объект вверх в three.js - PullRequest
0 голосов
/ 14 мая 2018

Я плохо разбираюсь в 3D-вычислениях, и мне здесь нужна помощь.

У меня есть земля, которая является сферой в моей сцене, и я использую OribitControl, чтобы "вращать" ее (на самом деле OribitControl вращаетсякамера).

Мне нужна функция, что-то хотелось бы rotateUp(rad), чтобы повернуть землю вверх, независимо от положения камеры.

Проблема в том, что мой rotateUp теперь:

earth.rotation.x -= rad

Это будет вращать землю вверх, если камера находится в исходном положении, но если камера поворачивается на 180 градусов, эта функция rotateUp фактически вращает землю вниз.

Как реализовать эту функцию?Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

Я сам нашел решение:

function rotateUp (rad) {
  const v = new THREE.Vector3()
  v.setFromMatrixColumn(camera.matrix, 0 )
  v.multiplyScalar(-rad)
  earth.rotation.x += v.x
}
...