圆球相撞 的轨迹算法!

dext 2002-07-07 12:23:48
已知两个圆球的半径r
两个球的圆心坐标(x1,y1)(x2,y2) (两球圆心距 >= 2r)
现在,1球 向(a,b)运动 若和2球相撞 1球2球 各向那个点运动?
点 有很多,随便一个,最好能说出轨迹!
...全文
278 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
许野平 2002-07-08
  • 打赏
  • 举报
回复
to dext(德克斯特) :
如果球的质量相同必然分离方向相同,而且v1^2+v2^2=v^2,其中v1,v2是两个球分离的速度,v是球1碰撞前的速度,符合勾股定理。
许野平 2002-07-08
  • 打赏
  • 举报
回复
to dext(德克斯特) :
球1和球2的编号可能在推导过程中混了,但愿不影响你对解法的理解!
许野平 2002-07-08
  • 打赏
  • 举报
回复
to dext(德克斯特) :
两球的质量相同的情况下两球的分离方向是垂直的。但有两个例外:
1.两球正面相碰,球2会沿球1的方向以同样的速度继续运行,球1会停止。这也可以认为以速度0沿垂直方向运动吧!
2.两球相切,球1速度不变,球2保持静止。这也可认为球2以速度0沿垂直方向运动吧!
另外,两球没有碰撞不再讨论范围内。
当球的直径相同,质量不相同时。可以按照 atlantis13579(更深的蓝)给出的矢量方程求解。这时两球的方向不再保持垂直。
dext 2002-07-08
  • 打赏
  • 举报
回复
谢谢。
quicmous(快鼠) 的结果就是我想要得!
atlantis13579(更深的蓝)(_L_) 更具有一般性
eion(那个谁) 由于不能插入图片,看起来费事,辛苦了!
shenhong0 2002-07-07
  • 打赏
  • 举报
回复
先将速度正交分解,再按atlantis13579(更深的蓝)(_L_) 说的做,就可以回避矢量问题了。
alidiedie 2002-07-07
  • 打赏
  • 举报
回复
高中物理.
许野平 2002-07-07
  • 打赏
  • 举报
回复
O,对不起兄弟。光看你美妙的方程式了...
atlantis13579 2002-07-07
  • 打赏
  • 举报
回复
to quicmous(快鼠)

v1,v2是相撞前的速度向量v1',v2'是相撞后的速度向量

看清楚
atlantis13579 2002-07-07
  • 打赏
  • 举报
回复
大学的物理课本有,你去看看
许野平 2002-07-07
  • 打赏
  • 举报
回复
atlantis13579(更深的蓝)(_L_) 的算法忽落了动量守恒定律中速度应该是矢量,因此是不可能确定球碰撞后的方向的。
许野平 2002-07-07
  • 打赏
  • 举报
回复
如果两个球是光滑的,而且碰撞是弹性的,解法如下:
1)过(x1,y1),(a,b)画直线L;
2)以(x2,y2)为圆心2r为半径画圆O;
3)如果园O与直线L相交,则取距(x1,y1)较近的点为A;
4)连接(x2,y2)-A,则球1沿该直线方向弹出;
5)球2的弹出方向和球1垂直。具体球法参见力学的弹性碰撞算法,两球碰撞后的速度的平方和等于球1原来速度的平方。
atlantis13579 2002-07-07
  • 打赏
  • 举报
回复
用动量可以算出

v1,v2是相撞前的速度向量v1',v2'是相撞后的速度向量,m1,m2是质量

动量守恒定律:
m1*v1+m2*v2=m1*v1'+m2*v2'

能量守恒定律:
m1*(v1)^2/2+m2*(v2)^2/2=m1*(v1')^2/2+m2*(v2')^2/2

这两个式子可解出v1',和v2',也就知道了方向
aben_king 2002-07-07
  • 打赏
  • 举报
回复
还有你的碰撞指的是那一种??完全弹性碰撞?完全非弹性碰撞?非完全弹性碰撞?弹性系数是多少??????
aben_king 2002-07-07
  • 打赏
  • 举报
回复
没有1球开始时的速度??
2球开始时的状态也没有给出?他的速度?位置??

如果假设的话!!我想你自己看看高中的课本!就会明白!!

dext 2002-07-07
  • 打赏
  • 举报
回复
TO: quicmous(快鼠)
4)连接(x2,y2)-A,则球1沿该直线方向弹出;
球2还是球1?

5)球2的弹出方向和球1垂直。
找你这样哦,任何非正碰,两球的轨迹都垂直?
eion 2002-07-07
  • 打赏
  • 举报
回复
我们仅看相碰撞一瞬间时的情形:
y/\
__ V0 | __V0
___ /| ___ | /|
/ \/ / \ |/theta
( o ) ( o )--->V1 O+----------->x
\ / \ /
~~~ ~~~
两个球碰撞后,我们可以看作是弹性碰撞,又因为碰撞时在切线处相撞
所有,如上憋图,在ox轴上,第一个球的速度全部传递给了第二个球。
(因为两个球质量相等)
而在oy轴上没有摩擦,没有其他外力,所以保留了原来的速度

所以,第二球的速度为 v0*cos(theta),方向为碰撞点的圆心连线方向
第一球的速度为v0*sin(theta),方向为碰撞点的切线方向

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧