Как повернуть сетку вокруг своей оси с помощью Three.js? - PullRequest
1 голос
/ 05 мая 2019

Начинающий Three.js здесь, я пытаюсь создать структуру, подобную 3d-кольцу, состоящую из отдельных сеток, которые я объединяю, используя CSG. Мне удалось разместить каждую отдельную сетку по кругу. Как мне теперь повернуть их так, чтобы длинная сторона каждого из них была обращена к центру круга (я полагаю, что он вращается вокруг оси y объекта)? Все сетки в настоящее время направлены в одном направлении, и то, что у меня есть до сих пор .

Однако, когда я попытался повернуть один из них вокруг оси y, он не повернулся внутрь к кругу, как я ожидал. Вместо этого вращается вот так . Похоже, он не вращался из центра положения, в котором он был ранее.

Я попробовал следующий код, чтобы получить этот результат:

mesh.position.x = 0;
mesh.position.y = 0;
mesh.position.z = 0;
mesh.updateMatrixWorld( true );
// Also tried "mesh.rotation.y = ((2 * Math.PI) / 10) * k;" instead of the following line:
mesh.rotateY(((2 * Math.PI) / 10) * k);
mesh.position.x = 25 * Math.cos((2 * k * Math.PI) / 10);
mesh.position.y = 0;
mesh.position.z = 25 * Math.sin((2 * k * Math.PI) / 10);
mesh.updateMatrixWorld( true );

Заранее спасибо! (Также отметим, что если кто-то понимает, почему некоторые части сетки случайно становятся несуществующими / прозрачными, было бы очень полезно).

РЕДАКТИРОВАТЬ: JSFiddle Link

...