Как мы можем создать геометрию черепахи в three.js?
Мы пытаемся создать простую среду программирования, которая позволяет людям создавать трехмерные формы (это вдохновлено проектом Scratch). Мы бы хотели, чтобы он работал в стиле "геометрия черепахи", когда существо (мы называем его жуком, по аналогии с логотипом черепахи) движется вокруг трехмерного пространства и может оставлять на своем пути объекты, которые занимают свою позицию. и ориентация.
В настоящее время мы используем Three.js. В то время как вы можете перемещать и вращать объекты, не ясно, как создать желаемый эффект, когда перемещения и вращения "накапливаются" и могут применяться к новым объектам. Мы также хотели бы сохранить стек этих матриц для push и pop.
Вот конкретный пример. Пользователь нашей системы может создать такую программу (это псевдокод):
repeat 36 [
move 10
rotate 10
draw cube
]
Идея состоит в том, что жук будет двигаться по кругу при выполнении этой программы, оставляя куб в каждой позиции.
Возможно ли это с помощью Three.js? Нужно ли переходить на чистый WebGL?
2 ответа
Вы можете взглянуть на http://u2d.com/turtle_js/index.html
Он использует JavaScript Systax, хотя.
И это не имеет обратной связи в случае ошибок. Черепаха просто ничего не делает.
Требования звучат довольно на высоком уровне. Нет причин, по которым вам понадобится доступ на низком уровне к сырому webgl. Библиотека более высокого уровня, такая как three.js или другая, вполне подойдет.
Как отметил @Orbling, вам нужно вычислить вращение для 3D; например
rotateX 10
(повернуть на 10 градусов против часовой стрелки вокруг оси x) или
turnLeft 10
(Поверните на 10 градусов против часовой стрелки вокруг тока вверх вектор).