作者littleshan (我要加入剑道社!)
看板GameDesign
标题Re: [程式] 请问如何计算2D的碰撞预测及碰撞避免
时间Wed Dec 13 15:59:14 2006
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.119.201.20
: 推 chaosrx:可以试试 Bounding Box 12/12
: 推 l314:用bounding box,当Agent数多时,计算的cost会相当大? 12/12
: 推 littleshan:grid + bounding box 12/12
: 推 l314:楼上的前辈能否再给小弟多一点提示或参考网站.. 12/13
: → l314:我有看过一些paper用grid,的确可以大幅降低计算的cost.. 12/13
: → l314:但我实作经验很不足,请问有没有推荐的网站可以参考..orz.. 12/13
: → l314:或前辈能多给些detail的指导..谢谢.. 12/13
grid 的概念很简单
就只是把整个区域切成一块一块的小方格
比如说 假设所有 agent 都会在 [0,100]x[0,100] 这个范围中移动
那就把它切成 10x10 的方格 每个格子的长宽皆为 10
而且每个方格都要储存所有位置在这个方格中的 agent 清单
这麽一来 假设某 agent 想知道哪些 agent 可能与它碰撞
他只要检查自己所在的方格 与邻近方格中的 agent 即可
而不需要和所有其它的 agent 测试
当然 要切多少个方格 就和你要侦测的距离相关
上面所说的做法是拿 20 做为上限
也就是所有距离超过 20 的 agent 都不会进行碰撞测试
方格的大小取决於你希望多近的距离才需要碰撞测试
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84
1F:推 l314:感恩..orz.. 12/13 16:56
2F:推 hodsala:影像四元树也是可以~可是查查~我只知道概念 01/02 18:44
3F:→ hodsala: 以 01/02 18:46
4F:推 littleshan:这是动态场景,不适合用 quadtree 01/04 05:53