关于球体碰撞的问题

来源:2-8 算法可视化中的MVC

seeme0726

2017-10-20

首先第一个要解决的就是怎么判断球体有没有发生了碰撞,现在我在这里难住了,  根据我们已知的条件 (1)所有小球的数组, (2)每个小球的半径, (3)每个小球的圆心坐标, 我们要根据这三个条件来判断小球是否发生了碰撞,因为圆跟圆的碰撞,碰撞点可能是圆周上的任意一点,所以根据坐标点计算,好像是不太行了,有没有哪位同学知道比较好点的办法,分享一下。谢谢了

http://img1.sycdn.imooc.com/szimg/59e9ba2d000150ba07970809.jpg

写回答

1回答

liuyubobobo

2017-10-21

其实这个问题我本来计划单独拿出一章进行介绍的,但是最后由于时间原因,没有作介绍。


简单来说,你给出的条件落了一个非常重要的条件,我们还知道每一个小球的速度(方向和大小)。所以,每两个小球之间发生碰撞(如果发生的话)的位置是可以计算的:)


但即使加上这个条件,完成这个任务依然不容易。需要一定的物理知识。与此同时,这个问题有很多优化方案,可以深度结合数据结构的使用。如果感兴趣的话,可以查询一下和“碰撞检测”这个领域相关的资料:)

1
4
weixin_慕慕249459
两个圆之间的碰撞和速度改变结合矢量运算应该不难,但是如果是多个圆在此时发生了碰撞,最后这些圆的位置和方向改变不好解决啊。
2022-08-05
共4条回复

7个经典应用诠释Java算法精髓

课程重应用、重实践、重思维,真正应用于实际工作开发中

1888 学习 · 112 问题

查看课程