c# – 两个碰撞的圆圈,无法将公式转换为代码

我处于可以检测刚体2D物理程序中圆圈碰撞的水平.
这些圆圈具有随机的x,y速度.
当他们中的任何一个击中他们中的任何一个时,我可以告诉他们相互碰撞然后!这一步就是问题所在.
我试图获取速度的X和Y值并根据碰撞点的轴转换它,我的意思是法向力的轴和另一个与法向力轴相比的轴. perpandacular轴称为切线轴……对吗?

我使用sin cos tan,但问题是因为s​​in cos tan只返回一个始终是右侧的角度,所以我的对象永远不会移动到左侧….所以所有碰撞对象的X轴动量是固定在右侧.
这导致了很多问题,我无法找到解决方法.
我会非常感激甚至很少的建议.
谢谢.

解决方法:

你不应该使用三角函数(sin,cos,tan等).

您希望在碰撞方向上对物体施加脉冲,即脉冲是碰撞方向矢量的某个倍数.计算物体的动量,然后简单地添加脉冲.

如果你正在进行简单的弹性碰撞,那么动量和能量就会得到保留.鉴于这些限制,您可以计算出冲动. This wikipedia article有详细信息.

上一篇:Linux快速入门01-基础概念


下一篇:Java中的哈希表手动冲突处理