Простая 3D-графика в Scala

#swing #scala #3d #processing

#swing #scala #3D #обработка

Вопрос:

Я разрабатываю пространственную структуру данных и ищу быстрый и простой способ ее визуализации для 3D-случая. Я знаком с Java2D, но не с Java3D или OpenGL.

Какую библиотеку вы бы порекомендовали для этого? В основном мне нужно рисовать трехмерные точки, линии и кубы. Так что в идеале, как Graphics2D API, но с дополнительным компонентом z. Не требуется анимация, обнаружение столкновений, текстуры, <your-favourite-3D-feature-here>. Желательно интегрировать с Swing / AWT. Параметрический угол обзора был бы хорош, поэтому я поворачиваюсь вокруг сцены.

Комментарии:

1. Что вам нужно с точки зрения функциональности? Просто отображение с перспективой и, возможно, окклюзией; или вращение в пространстве, отсечение, …? По крайней мере, первые несколько из них относительно просты в реализации, поэтому, если это всего лишь одноразовый случай (вы говорите «быстро и легко»), то, возможно, вы быстрее сделаете это сами, чем погрузитесь в OpenGL.

2. Да, именно так. Просто провода, окклюзия была бы хороша, но это не обязательно на 100%. Вращение вида (может быть статическим, мне не нужно это анимированное). Серверная часть Java2D была бы классной, потому что тогда у меня было бы прямое средство экспорта PDF для рисунков.

Ответ №1:

Ответ №2:

У Дейва Брикетти есть отличный набор программ для 3D-графики в Scala. Он использует processing.org фреймворк как средство для простой / яркой / блестящей обратной связи в серии руководств по scala. [https://www.youtube.com/watch?v=uj_Y3kl9-kIamp;ab_channel=FunctionalTV ][1]

Смог заставить работать многие из его примеров кода, загрузив их в проект eclipse maven. Признайтесь, что не подключили pom.xml для этого рабочего пространства проект. Он содержит остаток моей дневной работы Big_Data_Scala_Spark. Если вас интересует

Scala Processing_3D_graphics Eclipse Maven

пожалуйста, запросите, и я отправлю его на github после очистки (и вставки атрибутов для Dave.)

Ответ №3:

Это выглядит достаточно просто, хотя и на Java: http://ozark.hendrix.edu /~берч/cs/490/ассн/ассн3/