通过数学为立方体转动制作动画 (Java)
Animate a cube turning via mathematics (Java)
我为一个学校项目制作了一个程序,可以解出魔方(你知道,那个有所有颜色的魔方)。但是现在我的老师问我是否可以做一些研究并尝试为其中一侧制作 3d 动画。但他们希望看到数学方法来做到这一点。我找到了一种使用极坐标移动角的方法。但我不知道如何在 3d 中渲染立方体并为其制作动画。
所以我的问题是:如何在 3d 中渲染诸如立方体之类的东西(或者是否有任何好的库)以及如何使用这些极坐标为其设置动画?
java 3d 渲染有好的教程吗?
我必须说我完全没有 3d 渲染的经验,所以这可能有点困难。但我真的很想尝试一下。
提前致谢
根据您是要采用现有实现还是要从头开始构建 3D 动画代码,您可以尝试 this tutorial。这方面的图形编程可能会涉及很多;问题的完整答案超出了本网站的范围。但是,有几个主要领域。
矢量数学用于对象变换(平移、旋转)的用法。这可以直接完成,也可以使用 4×4 矩阵通过射影几何来完成。后者更容易连接转换。
背面剔除以移除相机无法看到的对象面。
使用投影和相机模型将 3D 坐标转换为 2D 坐标。
使用光栅器将 3D 矢量信息渲染到屏幕上。这里 Bresenham's algorithm 可能是一个好的开始。
我建议您查看其中一个 3D 库。 JMonkeyEngine (JME) 是我经常使用并发现非常出色的一个,它专为游戏而设计,但可以很好地满足您的需求。它还有一个优秀的教程,可以让您从基础到非常复杂。事实上,教程的第一步是一个旋转的彩色立方体!
JME 承担了大量的 3D 建模工作。您使用材质、灯光等在代码中构建一个场景,JME 会完成渲染它的所有工作。您甚至可以在 Blender 等工具中构建模型,这样您甚至不需要在代码中进行建模。但我要警告你,使用建模工具绝对不适合胆小的人。
我为一个学校项目制作了一个程序,可以解出魔方(你知道,那个有所有颜色的魔方)。但是现在我的老师问我是否可以做一些研究并尝试为其中一侧制作 3d 动画。但他们希望看到数学方法来做到这一点。我找到了一种使用极坐标移动角的方法。但我不知道如何在 3d 中渲染立方体并为其制作动画。
所以我的问题是:如何在 3d 中渲染诸如立方体之类的东西(或者是否有任何好的库)以及如何使用这些极坐标为其设置动画? java 3d 渲染有好的教程吗?
我必须说我完全没有 3d 渲染的经验,所以这可能有点困难。但我真的很想尝试一下。
提前致谢
根据您是要采用现有实现还是要从头开始构建 3D 动画代码,您可以尝试 this tutorial。这方面的图形编程可能会涉及很多;问题的完整答案超出了本网站的范围。但是,有几个主要领域。
矢量数学用于对象变换(平移、旋转)的用法。这可以直接完成,也可以使用 4×4 矩阵通过射影几何来完成。后者更容易连接转换。
背面剔除以移除相机无法看到的对象面。
使用投影和相机模型将 3D 坐标转换为 2D 坐标。
使用光栅器将 3D 矢量信息渲染到屏幕上。这里 Bresenham's algorithm 可能是一个好的开始。
我建议您查看其中一个 3D 库。 JMonkeyEngine (JME) 是我经常使用并发现非常出色的一个,它专为游戏而设计,但可以很好地满足您的需求。它还有一个优秀的教程,可以让您从基础到非常复杂。事实上,教程的第一步是一个旋转的彩色立方体!
JME 承担了大量的 3D 建模工作。您使用材质、灯光等在代码中构建一个场景,JME 会完成渲染它的所有工作。您甚至可以在 Blender 等工具中构建模型,这样您甚至不需要在代码中进行建模。但我要警告你,使用建模工具绝对不适合胆小的人。