2014-09-13 3 views
1

Предположим, у меня есть обычная кубическая сетка, где происхождение находится в одном из углов. Я хотел бы указать происхождение куба в центре его. Я понимаю, что могу сделать перевод, и, похоже, он работает (я могу доказать, что это работает, вращая куб, который вращается вокруг середины центральной точки).Three.js - Перевод с движением?

Однако я всегда считал, что перевод просто перемещается в другую точку в 3D-пространстве (вместо установки точки начала).

Я что-то упускаю или просто путаю 2 вещи, которые на самом деле одно и то же?

* Резюмируя *

Обратите внимание, что если я хочу, чтобы переместить объект, я просто обновить вектор позиции. И применяя перевод SEEMS для обновления начальной точки. Моя путаница исходит из моего понимания, что «перевод» - просто причудливый термин для «перемещения» объекта в 3D-пространстве. Следовательно, что такое перевод (перемещение в 3d-пространстве или обновление точки начала или обоих)?

ответ

3

Перевод по геометрии перемещает происхождение:

var geometry = new THREE.CubeGeometry(1, 1, 1); 
geometry.applyMatrix(new THREE.Matrix4().makeTranslation(0, 0.5, 0)); 

Перевод на Object3D перемещает позицию:

var obj = new THREE.Mesh(geometry, material); 
obj.position.set(0.5, 0.5, 0.5); 
+0

ли переводить() метод класса геометрии изменить происхождение, а? – taseenb

+1

Да, реализация этого метода такая же, как и код выше: https://github.com/mrdoob/three.js/blob/8622b1938a627aa72d2c9c55858c1fda3632c9ec/src/core/Geometry.js#L162-L178 – IceCreamYou

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