直接计算结果的移动碰撞(一)

Smile_Tiger 2007-05-25 10:15:27
已知 对象的碰撞模型,为了简单这里设定为园,即对象的R半径属性,以及对象的位置p,移动矢量速度v (二维矢量,如果为圆周运动,v为线速度),转弯速度k(正负标示转弯方向,表达单位时间内转过的弧度,k和v可确定转弯半径)

1. 已知对象 A1(R1,p1,v1) 和 A2(R2,p2,v2),均作直线运动,求它们是否会碰撞,如果碰撞,计算碰撞会发生的时间段 Tst 和 Ted, (st = start, ed = end)

2. 已知对象 A1(R1,p1,v1,k1) 和 A2(R2,p2,v2,k2),均作圆周运动,求它们是否会碰撞,如果碰撞,计算碰撞会发生的时间段 Tst 和 Ted, (st = start, ed = end)

3. 已知对象 A1(R1,p1,v1) 作直线运动, A2(R2,p2,v2,k2) 作圆周运动,求它们是否会碰撞,如果碰撞,计算碰撞会发生的时间段 Tst 和 Ted, (st = start, ed = end)
...全文
311 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xstong1982 2008-02-18
  • 打赏
  • 举报
回复
定义碰撞为A1,A2两者圆点之间距离<=R1+R2(=号不要也行)
写出A1,A2运动曲线方程x1=f1(t),y1=g1(t),x2=f2(t),y2=g2(t)
求得两者圆点之间距离l=(x2-x1)^2/(y2-y1)^2=F(t) <= R1+R2
然后定义步长t',从t=0开始
for (t = 0; ; t+=t')
{
if (F(t) <= R1+R2)
break;
}
这是的t就是最先发生碰撞的时间。
不知道这样写对不对,大家指正。
jmulxg 2008-01-29
  • 打赏
  • 举报
回复
MARK
超级大笨狼 2007-06-10
  • 打赏
  • 举报
回复
http://www.dullwolf.cn/collapse.html
多边形的碰撞检测算法
Smile_Tiger 2007-05-28
  • 打赏
  • 举报
回复
up

33,008

社区成员

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

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