2014-09-12 2 views
1

У меня есть scene, meshes и цель object.три js, получающие координаты mesh.lookAt (объект);

Когда я настроить

mesh.lookAt (объект)

сетки правильно облицовки объекта.

Как я могу повторить этот поворот сеткой на другой сетке, чтобы еще одна сетка была направлена ​​в том же направлении (не тот же объект, но такая же ориентация, как у первой сетки)?

Как я могу получить координаты вращения первых сетка?

Как я могу получить эти координаты без необходимости создания сетки и порядка mesh.lookAt(object). Это означает только вычисление этих координат без необходимости использовать его на каком-либо объекте?

UPDATE: только возможное решение заключается в создании нового THREE.Object3D() и использовать object.lookAt(target). Затем повторите вращение для всех более поздних загружаемых объектов: new_object.rotation.set(object.rotation.x,object.rotation.y,object.rotation.z) Вы создадите только один объект, а не много неиспользуемых Vector3-s.

Не использовать new_object.rotation = object.rotation это функциональное решение, но переменные остаются на связи. Изменение object вращения, также обновит new_object.rotation (рендеринг обновляет все значения в каждом кадре).

ответ

1

Вы можете установить местное вращение других сеток на локальное вращение меча, обращенного в правильном направлении.

anyOtherMesh.rotation = mesh.rotation; 
+0

Привет, ТНХ, но как я могу получить доступ к что значения, если у меня нет этого объекта, меняют. Я хочу знать и получать значения вращения и применять ко второй сетке, но я не хочу поворачивать первую сетку. – Martin

+0

Реальная ситуация: у меня есть корабль, перед запуском летаю, мне нужно повернуть корабль к цели. Я использую (object.lookAt (myWayTarget), но это будет прыгать в положение путешествия, это выглядит уродливо) Мне нужно оживить это вращение. Вот почему мне нужны координаты прежде чем судно повернуто точно, к anima плавный переход к этому вращению. Это не будет умным, чтобы сделать другой объект, повернуть его и использовать AnotherObject.rotation как завершающие координаты для анимации, но я не могу найти другой способ. – Martin

0

насчет LookAt (новый THREE.Vector3 (target.position.x, target.position.y, target.position.z) ?

+0

Какой из трех вопросов имеет этот адрес? –

+0

Обновленный вопрос с самым известным решением. – Martin

+0

@paul означает новый вектор3 каждый кадр на каждом повернутом объекте. Я думаю, что это тривиальное действие, должно быть более экономичным. В этом случае вам всегда нужно создавать новый вектор и пересчитывать вращение матрицы с помощью функции lookAt, когда у вас есть результаты, готовые и готовые к первому объекту ... – Martin

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