Как я могу сделать поворот моей камеры в три js равным 360? - PullRequest
1 голос
/ 24 марта 2020

Я хочу получить 360 зрителей определенного продукта, поэтому у меня есть 3D-объект, и я хочу повернуть камеру вокруг объекта на 45 градусов за клик в соответствующем направлении, но у меня возникли проблемы с ним.

Камера:

this.camera.rotation.y = 15 / 180 * Math.PI;
this.camera.position.x = 0;
this.camera.position.y = 500;
this.camera.position.z = 1200;
this.camera.lookAt(0, 0, 0);

Методы нажатия кнопки:

onRightClicked() {
    const newCamPosition = (this.camera.position.x + degToRad(45)) * 10;
    this.camera.position.x = newCamPosition;
    this.camera.position.y = 500;
    this.camera.position.z = 1200;
  }

  onLeftClicked() {
    const newCamPosition = (this.camera.position.x - 150);
    this.camera.position.x = newCamPosition;
    this.camera.position.y = 500;
    this.camera.position.z = 1200;
  }

Все работает, но моя камера не поворачивается на 45 градусов за клик. Я думаю, что ошибка в camera.rotation.y, но я новичок с тремя js, и я не знаю, что происходит.

1 Ответ

2 голосов
/ 24 марта 2020

Может быть, что-то вроде этого с .applyAxisAngle():

var axis = new THREE.Vector3(0, 1, 0);
var step = Math.PI * 0.25;

onRightClicked() {
  this.camera.position.applyAxisAngle(axis, step);
}

onLeftClicked() {
  this.camera.position.applyAxisAngle(axis, -step);
}
...