两个球,在一大球面上以不同的方向直线运动,因此,这两个球的运动轨迹必定相交。已知:两个球质量为m,半径为r,速度v1,v2,当前位置分别为A,B,两球预计的运动轨迹球心交叉点为C,AB,AC的长度已经知道,∠ACB也知道。如何检测他们是否碰撞?如果碰撞,他们的碰撞点在哪个位置?
有人说,如果AB/v1=AC/v2,他们就碰撞了,否则不为碰撞。其实并不是这样,他们忽略了球的大小。也有人说,检测两球球心距离,球心为2r的时候,两球碰撞,但是说得容易,做起来难,两球球心为2r的时候,我知道是碰撞了,但我总不能不停的检测吧,这样的效率应该很低。
那朋友说得很对,两球球心距离为2r时,他们碰撞了,但他们的碰撞位置呢?∠ACB和2r作为对边长,形成一个三个形,他们的任何一个点都有可能发生碰撞是,同时,亦可能在∠ACB的对角部分发生对碰。对这部分的数学知道,现在了解也生疏了,你们有什么好的办法预计碰撞与计算碰撞位置?
有人说,如果AB/v1=AC/v2,他们就碰撞了,否则不为碰撞。其实并不是这样,他们忽略了球的大小。也有人说,检测两球球心距离,球心为2r的时候,两球碰撞,但是说得容易,做起来难,两球球心为2r的时候,我知道是碰撞了,但我总不能不停的检测吧,这样的效率应该很低。
那朋友说得很对,两球球心距离为2r时,他们碰撞了,但他们的碰撞位置呢?∠ACB和2r作为对边长,形成一个三个形,他们的任何一个点都有可能发生碰撞是,同时,亦可能在∠ACB的对角部分发生对碰。对这部分的数学知道,现在了解也生疏了,你们有什么好的办法预计碰撞与计算碰撞位置?
解决方案 »
- 老的程序,不是继承的窗口怎样改成继承的?
- 怎么把Delphi、rave、SQL Server 2005做成一个应用软件
- 为什么这句不按我的意思去执行呢?
- 在Delphi 7下无法安装ActiveX控件.
- 高分提问!奇怪的问题,但是简单,开发过组件的近来看看 200409
- 请问1999年出的是Delphi几版本,谢谢。在线等候
- 一个机房记费管理的软件—(100分)
- 急!100分坚决放送
- 在A程序中运行另一程序B后,怎样在不关闭B的情况下,继续执行A中的代码?
- 如何对一个类型进行递归运算,多指教
- 如何利用SendMessage向StringGird 中某一指定单元格 发送文本信息??
- delphi自定义的过程,函数作不作为窗体函数有什么区别?
不单是2D的,3D也非常轻松的实现。