球分裂和合并

时间:2013-08-11 18:56:22

标签: visual-c++ graphics 3d

我正在制作一个简单的OpenGl程序来绘制一些球,当它们以半径halved碰撞到墙壁时会分裂,当两个球碰到adding半径时合并...... <登记/> 我的功能正常工作,但问题是我无法在同一个程序中添加分割和合并。
原因:一个球在瞬间碰撞到墙壁,同时瞬间两个球都是仍然保持联系,所以act_On_Collision()再次合并两个球 因此球永远不会破裂或合并,并且当所有球从相同点初始化时它们全部合并但是没有出现在screan上。下载源代码here
所以对此有任何帮助/想法都很受欢迎。

2 个答案:

答案 0 :(得分:2)

您可以在拆分/合并条件中添加一些滞后。即当分裂发生时,两个球应首先相互移动一定距离,然后才能启用它们的合并逻辑。

或者你使用速度矢量,即只有速度进一步减少距离合并的球。分割后,它们的运动矢量应该分开。

答案 1 :(得分:1)

两个球在与墙壁接触时永远不会加入。所以你可以使用那个条件。当两个球接触而不与墙壁接触时,它们将会加入。