Как мы можем создать геометрию черепахи в 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 градусов против часовой стрелки вокруг тока вверх вектор).

Другие вопросы по тегам