Три.js-перевод против перемещения?


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

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

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

* подведем итог *

Обратите внимание, что если я хочу переместить объект, я просто обновляю вектор положения. И применение перевода, похоже, обновляет исходную точку. Моя путаница происходит от моего понимания, что "перевод" - это просто причудливый термин для" перемещения " объекта в трехмерном пространстве. Таким образом, что именно является переводом (перемещение в трехмерном пространстве, или обновление исходной точки, или и то, и другое)?

1 3

1 ответ:

Перевод по геометрии перемещает начало координат:

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);