Как повернуть объект за три секунды вокруг своей оси? - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу вращать объект глобуса вокруг своей оси y. Я нашел функцию для этого:

function rotateAroundObjectAxis(object, axis, radians) {

  var rotationMatrix = new THREE.Matrix4();

  rotationMatrix.makeRotationAxis(axis.normalize(), radians);
  object.matrix.multiply(rotationMatrix);
  console.log("object matrix: " + object.matrix.elements);
  object.rotation.setFromRotationMatrix( object.matrix );
}

Однако вращение останавливается в определенной точке. Я предполагаю, что это потому, что значение object.matrix, которое используется для умножения матрицы на мою вычисленную матрицу вращения, становится <= 0. Как бы я приблизился к непрерывному вращению? </p>

Заранее спасибо.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы должны использовать object.rotateY (rad) https://threejs.org/docs/#api/en/core/Object3D.rotateY. Для непрерывного вращения используйте маленький угол и обновите в цикле рендеринга.

...