球体-球体碰撞检测->反应
我需要制定一种算法来检测两个球体何时发生碰撞,以及碰撞后瞬间的方向。
假设,想象一下,当您在台球比赛中打开桌子时,所有球都“随机”地相互碰撞。
因此,在开始自己编写代码之前,我在想是否已经有一个实现。
提前谢谢!
赛亚斯.-
I need to make an algorithm that detects when two spheres collide, and, the direction that wich one will take an instant after the collision.
Let say, Imagine like when you open your table in a pool match, all the balls are colliding one to another "randomly".
So, before starting to write the code myself, I was thinking if there is already a implementation of this out there.
Thx in advance!
Cyas.-
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
碰撞部分很容易。检查球体中心之间的距离是否小于其半径之和。
至于弹跳,您需要交换对垂直于球体碰撞的总速度起作用的速度量。 (假设所有球体具有相同的质量,不同质量的组合会有所不同)
编辑:如果您需要更高的精度,那么在碰撞时您应该计算将两个碰撞球体向后移动多远,以便它们恰好接触每个球体其他,则触发执行碰撞函数。这将确保角度更加准确。
The collision part is easy. Check if the distance between the spheres centers is less than the sum of their radius.
As for the bounce, you need to swap the velocity amounts that contribute to the total velocity perpendicular to the collision of the spheres. (Assuming all your spheres have equal mass, it would be different for a combination of different masses)
EDIT: If you need more accuracy, then upon a collision you should calculate how far to move both the colliding spheres backwards so that they just touch each other, then trigger the perform collision function. That would insure the angles will be more accurate.