В three.js r96 существовал перевод (x, y, z).Я бы использовал это, чтобы переместить объект из его начальной точки.
Теперь в r103 это устарело для translateX (x), однако, глядя на вывод консоли в сетке, я вижу, что если у меня есть позицияскажем, position.set (50,0,0) и traslateX (50), тогда атрибуты Mesh показывают позицию (100,0,0).
https://codepen.io/anon/pen/XQVmyZ
Вот пример проблемы.В этом коде у меня есть три самолета.Вращающаяся плоскость должна вращаться вокруг оси y в точке пересечения красного и синего.
Если моя плоскость равна 100, то установка положения (50,0,0) должна сдвинуть синийот центра до самого правого края красного цвета.Это должно быть новое происхождение синего цвета.
Теперь, если я перевожу синий на ось x 50, то точка начала все еще должна быть в том же месте, но теперь синий цвет при повороте будет вращаться вокруг оси Y, расположенной на самой внешней стороне синего цвета.левая точка.Как вы видите, это не так.
Взгляд в Mesh показывает, что это не перевод, а только позиция.
plane3.position.set(50,0,0);
//plane3.translate(50,0,0); //Used to work
plane3.translateX(50); //New translate, adds to position instead
//var vector = new THREE.Vector3( 1, 0, 0 );
//plane3.translateOnAxis(vector,40);
function render() {
requestAnimationFrame( render );
plane3.rotation.y += 0.03;
renderer.render( scene, camera );
}
Мой желаемый результат такой, каким я мог бы поворачиватьсясиний на самой крайней левой оси Y.