2015-01-13 3 views
2

Для школьного проекта я сделал программу, которая может решить кубик rubiks (вы знаете, этот куб со всеми цветами). Но теперь мои учителя спросили, могу ли я провести исследование и попробовать 3d-анимацию для одной из сторон. Но они хотят видеть математический способ сделать это. Я нашел способ переместить углы с использованием полярных координат. Но я не знаю, как я мог бы сделать куб в 3d и уметь его анимировать.Анимация куба с помощью математики (Java)

Итак, мой вопрос: как я могу визуализировать такие вещи, как куб в 3d (или есть хорошие библиотеки для него), и как я могу использовать эти полярные координаты для его анимации? И есть ли хороший учебник для java-3d-рендеринга?

Я должен сказать, что у меня нет абсолютно никакого опыта с 3D-рендерингом, так что это может быть немного сложно. Но я действительно хотел бы попробовать.

заранее спасибо

ответ

1

В зависимости от того, хотите ли вы взять существующую реализацию или если вы хотите создать код для 3D-анимации с нуля, вы можете попробовать this tutorial. Графическое программирование в этой области может быть весьма привлекательным; полный ответ на этот вопрос выходит за рамки этого сайта. Однако есть несколько основных областей.

  1. Использование векторной математики для преобразования объектов (перевод, ротация). Это можно сделать напрямую или через проективную геометрию с использованием матриц 4 на 4. Последнее проще для конкатенации преобразований.

  2. Обратная сторона, удаляющая лица объекта, которые невозможно увидеть камерой.

  3. Использование проекции и модели камеры для преобразования 3D-координат в 2D-координаты.

  4. Использование растеризатора для визуализации 3D-векторной информации на экран. Здесь Bresenham's algorithm может быть хорошим началом.

+0

звучит круто :), спасибо за помощь – javaNoobsForever

1

Я предлагаю вам взглянуть на одну из трехмерных библиотек. Тот, который я использовал много, и оказался отличным, это JMonkeyEngine (JME), который предназначен для игр, но будет хорошо работать для ваших нужд. Он также имеет отличный учебник, который позволяет вам перейти от базового к очень сложному. На самом деле первым шагом в учебнике является вращающийся цветной куб!

JME принимает огромное количество работы из 3D-моделирования. Вы создаете сцену в коде с материалами, огнями и т. Д., И JME выполняет всю работу по ее рендерингу. Вы даже можете создавать свои модели в таком инструменте, как Blender, поэтому вам даже не нужно делать моделирование в коде. Но я предупрежу вас, что использование инструментов моделирования, безусловно, не для слабонервных.

Смежные вопросы