通过数学(Java)为立方体转动动画

时间:2015-01-13 06:53:29

标签: java animation 3d

对于一个学校项目,我已经制作了一个可以解决rubiks立方体的程序(你知道,那个具有所有颜色的立方体)。但是现在我的老师问我是否可以做一些研究,并为其中一方试用3D动画。但他们希望看到数学方法来做到这一点。我找到了一种使用极坐标移动角落的方法。但我不知道如何在3d中渲染立方体并能够为其制作动画。

所以我的问题是:如何在3d中渲染像立方体这样的东西(或者有没有好的库),我怎么能用这些极坐标来动画呢? 还有一个很好的教程可以用于java 3d渲染吗?

我必须说我完全没有3D渲染经验,所以可能有点困难。但我真的很想尝试一下。

提前致谢

2 个答案:

答案 0 :(得分:1)

根据您是要采用现有实现还是要从头开始构建3D动画代码,您可以尝试this tutorial。这方面的图形编程可能非常复杂;该问题的完整答案超出了本网站的范围。但是,主要有几个方面。

  1. 使用矢量数学转换对象(平移,旋转)。这可以使用4乘4矩阵直接或通过投影几何完成。后者更易于连接转换。

  2. 背面剔除以移除相机无法看到的物体的脸部。

  3. 使用投影和相机模型将3D坐标转换为2D坐标。

  4. 使用光栅化器将3D矢量信息渲染到屏幕。这里Bresenham's algorithm可能是一个好的开始。

答案 1 :(得分:1)

我建议你看看其中一个3D库。我经常使用并且发现非常出色的是JMonkeyEngine(JME),它专为游戏设计,但可以很好地满足您的需求。它还有一个很好的教程,可以帮助您从基础到非常复杂。事实上,本教程的第一步是旋转彩色立方体!

JME从3D建模中完成了大量工作。您可以使用材质,灯光等在代码中构建场景,JME会完成所有渲染工作。您甚至可以使用Blender等工具构建模型,这样您甚至不需要在代码中进行建模。但我会警告你,使用建模工具绝对不适合胆小的人。