Рад, что данный пост оказался Вам полезен. Библиотека x3dom строится на декларативном описании сцены с помощью тегов. В некоторых случаях это удобно, в некоторых — ограничивает. Но в целом было приятно работать с ней.
Система была бы востребована если бы позволяла строить модели непосредственно мышью. Тогда можно было бы в обучении использовать.
Описывать построения текстом — очень неудобно. В крайнем случае — нужно делать интерактивный редактор, на JS, чтобы сразу видеть что получается.
И кстати, обеспечить рисование «в живую» не так сложно. еще на 2-м курсе подобную систему делал для плоскости. В 3D почти то же самое. Только нужно добавить возможность задания плоскости построения, а потом все в 2D.
Согласен. Система предполагает навыки в программировании. Но при этом открывается масса возможностей. Можно строить интересные математические объекты, которые мышкой не построить при всем желании. Данная система больше задумывалась как-раз для такой науко-содежащей графики. И конечно, ручной редактор для меня реализовать было сложно. Соревноваться с 3DMax я бы не рискнул.
Как раз научные, сложные объекты куда проще построить в 3DsMax, а потом импортировать просто в виде модели.
(задать построение с циклами и т.п. на MAXScript — тоже несложно, и возможностей куда больше)
А вот как обучающую программу по стереометрии — система была бы интересна. И соревноваться не нужно, фишка как раз с построениях, как циркулем и линейкой. Этого в 3D пакетах нет, или оно сильно «глубоко закопано».
Я немного учавствовал в расширении возможностей движка.
Исходники доступны на гитхабе
Ноги растут из другого проекта — OpenJsCad by Joost
В основе — lightgl и csg. Собственно последняя библиотека и реализует операции на 3х мерных объектах.
Конечно!!! Очень ценное замечание. Ради этого все и задумывалось. В Demo4. (Построение тетраэдра) в самом начале переменной присваивается размер стороны. Все остальные координаты вычисляются из нее. Параметрическое моделирование здесь получается естественно, если придерживаться определенных правил при построении. Кроме того, можно использовать процедуры (как в Demo3). При этом написав один раз построение объекта, как процедуру можно вызывать эту процедуру сколько угодно раз с разными параметрами.
Создание 3D-иллюстраций — прототип системы