Я новичок в этой области, так что извините, если это глупый вопрос.
Моя проблема:
Я хочу построить призму (многоугольник состоит из 24 плоскостей). Итак, у меня 24 самолета, каждый из них сгруппирован под углом 15 °. Поскольку сложно рассчитать расстояние по осям x и z, было бы проще, если бы вы установили точку поворота, например, в правом нижнем углу? правильно? но как? или есть еще возможность создать круг, состоящий из плоскостей?
Извините за мой плохой английский :-/
У вас есть два варианта.
Сместите все вершины в вашей геометрии:
geometry.applyMatrix( new THREE.Matrix4().setTranslation( 0, 10, 0 ) );
Создайте объект, который будет действовать как точка поворота:
mesh.position.y = 10;
var pivot = new THREE.Object3D();
pivot.add( mesh );
scene.add( pivot );
Есть ли у этих двух методов плюсы или минусы?
geometry.applyMatrix (новый THREE.Matrix4 (). setTranslation (0, 10, 0));
сейчас
geometry.applyMatrix (новый THREE.Matrix4 (). makeTranslation (0, 10, 0));
https://github.com/mrdoob/three.js/commit/7f05ba167c522d1b9bac01677c2249b0f1b8c834
вещь applyMatrix makeTranslation в моем случае не работает. не знаю почему.
сводный объект работает. и ИМХО так проще.
заметка:
использовать этот
mesh.position.x = ###;
mesh.position.y = ###;
mesh.position.z = ###;
вместо:
mesh.position.set(###,###,###);
Спасибо @placegraphic здесь , это помогло.
Что-то вроде этого должно работать и с three.js v78, если вы хотите, например. вместо этого вращайте вокруг края объекта, если его центр:
.js
mesh.geometry.translate( -myObjectWidth/2, 0, 0 );
Но имейте в виду, что использование geometry.translate()
изменит положение всех вершин. Это хорошее решение, если вы не планируете снова менять точку опоры.
Я хочу переместить исходную точку моей сетки (контейнера 3D-коробки) из центра в левый нижний угол. Поэтому, когда я добавлю любой другой небольшой сетчатый блок внутри контейнера, он должен быть помещен в левый нижний угол, а не в центр.
mesh.geometry.translate (-myObjectWidth / 2, 0, 0);
Когда я использую это, моя позиция сетки также меняется.
@imguccho, пожалуйста, воспользуйтесь форумом для помощи.
Как перевести точку для ArrowHelper
Самый полезный комментарий
У вас есть два варианта.
Сместите все вершины в вашей геометрии:
Создайте объект, который будет действовать как точка поворота: