基于RVO方法的多Agent运动仿真算法实现
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
开发环境:
开发换为vs2008,基于的是rvo-1.1a的这套源码。虽然这套源码是你给我的,但是我还是稍微解释一下代码结构,如果你了解的话可以跳过这一段。
RVOLIB
该目录放的是RVOLIB的源码,其提供带有模拟功能的RVO库。我们写的界面程序数据均来自RVOSimulator这个类。
guiSim
该目录放的是我们写的界面程序,调用的是lib下面的RVOLIB.lib。这个RVOLIB.lib就是前面将的RVO的库。
代码修改:
不知道出于什么原因,你给我的RVOLIB下的代码有一些问题(我不知道是不是你们老师故意)。我做出了一些纠错性的修改
这里我重点将一下我们的GUISIM目录程序的设计。
GUISIM的程序是基于MFC的单文档完成的,如果你不清楚的话。百度一下MFC单文档,将比我说的详细。
除了MFC生成的VIEW等类之外,我们设计了SimObject类。SimObject的每一个实例,就是你在view中看到的那个小圆圈,它包括坐标,颜色等属性。圆圈的移动就是不断的改变他的坐标。
CguiSimView是我们实现模拟的主要类。这里我讲重点函数的功能和实现方法
以场景3为例:
void CguiSimView::On32773()为场景3的启动函数,就是菜单点场景3就出发该函数
sim()为创建RVOSimulator类的实例,RVOSimulator的实现由RVO库提供
methodXInit 表示场景X的初始化函数,初始化的内容包括:添加模拟体,添加障碍物,添加roadmap
setupScenario被methodXInit调用,具体添加所有东西的函数。
ThreadProc 为数据线程的线程处理函数,其作用是专门跟RVOSimulator数据交互,改变每一个模拟体的坐标值。
updateVisualization被ThreadProc调用,具体改变坐标值的函数。
OnDraw,CguiSimView的自绘函数(这个是windows中绘图的基本概念),当收到WM_PAINT消息时,调用各个SimObject的draw函数,将每个模拟体在新的位置画出来