2009-03-02 88 views
2

我需要编写一个非常简单的Java物理模拟器,立方体和球体相互碰撞,而不是更多。我从来没有做过这样的事情,我应该从哪里开始?有关如何完成的任何文档?任何我可以重复使用的图书馆?从哪里开始写/使用3D物理模拟引擎?

回答

1

假设你想开始如何做,最好的办法是用钢笔和纸。开始定义你的应用程序的焦点(如实体球体,立方体等,像重力,碰撞等规则,决定对象的层次结构等。)

如果你知道如何做到这一点, Swing是在Java中制作UI的好选择。

也到这里看看:http://www.myphysicslab.com/

0

如何首先定义物理对象的类?它有位置,速度,质量和可能与其他的功能,如形状,弹性等

然后创建一个宇宙(类),其中放置这些物理对象的子类。听起来很有趣:)

0

如果你需要模拟的是球体/圆和立方体,那么你所需要的只是一些矢量数学。

例如模拟一个简单的游戏池游戏,每个球(球体)都有一个位置,3d线速度和3d线性加速度向量。你的模拟将涉及许多小框架,它不断更新每一个球。如果两个或两个以上的球碰撞,只需对矢量进行求和并计算所有球的新速度。例如,如果一个球碰到墙壁,所需要的只是翻转球的标志以使其反弹回来......

+0

这不是物理学:没有重力,没有弹性等乐趣做起动器,但有限。 – PhiLho 2009-03-02 13:36:29

0

如果您想从头开始编写自己的物理引擎,我们必须知道背后数学的来龙去脉才能做到这一点。如果你有一个相当好的数学背景,你会有一个头痛的起因,否则会有一个陡峭的学习曲线。

你可以开始进行这项工作的社区论坛,收集有关如何做事的信息: gamedev.net

Ofcourse你可以使用像Ogre一个开源的引擎,如果你不希望自己的代码。

1

NeHe的课程39是一个很好的起点,它在C++中,但理论很容易理解。

1

一个不错的java物理库是jmephysics(http://www.jmonkeyengine.com/jmeforum/index.php?topic=6459);它很容易使用,并且位于ODE(​​)和jmonkeyengine(http://www.jmonkeyengine.com)之上,它为您提供了一个场景图(http://en.wikipedia.org/wiki/Scene_graph),这是除了非常简单的3d应用程序之外您需要的任何东西。

虽然我还没有使用它一段时间,并且看到他们自2007年后期以来还没有发布,所以不知道现在社区有多活跃。