three.js устанавливает объекты в локальной системе координат другого объекта - PullRequest
0 голосов
/ 07 января 2019

Мне было интересно, возможно ли разместить трехмерные объекты в локальной системе координат другого объекта в three.js. поэтому размещенные объекты должны быть относительно объекта «origin».

например: я сканирую изображение с помощью камеры устройства (с помощью expo AR) и хочу разместить объекты, которые получили фиксированное расстояние до изображения. Я думаю, что эти позиции относительно камеры, не так ли?

             this.scene.add(chair)
            chair.position.set(  1, 0,  -5);

            this.scene.add(chair2)
            chair2.position.set( 1, 0 ,  -3);

1 Ответ

0 голосов
/ 07 января 2019

Я думаю, что вы ищете объект THREE.Group. Он позволяет вкладывать элементы в группу, поэтому, если вы измените координаты группы, ее дочерние элементы будут перемещаться вместе с ней. Например:

// Create parent, set its pos to 0, 5, 0
var parent = new THREE.Group();
scene.add(parent);
parent.position.set(0, 5, 0);

// create child, and add to parent
var chair1 = new THREE.Mesh(geom, mat);
parent.add(chair1);
chair1.position.set(1, 0, 0);

// create child, and add to parent
var chair2 = new THREE.Mesh(geom, mat);
parent.add(chair2);
chair2.position.set(0, 1, 0);
  • стул1 будет в [1, 5, 0] в глобальных координатах, но [1, 0, 0] в локальном пространстве.
  • стул2 будет в [0, 6, 0] в глобальных координатах, но [0, 1, 0] в локальном пространстве.
...