6s从icloud云备份恢复:游戏中常见的几种追踪算法
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 17:54:38
http://www.cppblog.com/expter/archive/2009/10/09/98210.html 2009-10-09 23:57 所谓追踪,相对于另外一个角色来说是逃跑,首先需要做出追和逃跑的决策判断。
1.坐标追踪
也是最基本追逐方式,他根据要追踪对象的坐标来修改追踪者的坐标,使两者的距离逐渐缩短。
一个简单的例子:
Point m_pPrey; /// 被追踪者
Point m_pAtta; /// 追踪者
对于追踪者来说: 新位置 = 旧位置 + XY速度 ;
1if( m_pAtta.x < m_pPrey.x )
2 m_pAtta.x ++;
3else if( m_pAtta.x > m_pPrey.x )
4 m_pAtta.x --;
5
6
7if( m_pAtta.y < m_pPrey.y )
8 m_pAtta.y ++;
9else if( m_pAtta.y > m_pPrey.y )
10 m_pAtta.y --;
3.拦截追踪
所谓拦截追踪,如果考虑的是被追逐的目标太远,如果2者速度一样,或者相差不大,有可能很难追上,玩过实况足球的都知道,如果采用上面的2中追逐方式,可能错过最佳的防守位置。下面是拦截追踪的一个示例图:
对于追踪者来说,他只需要知道被追踪者的位置,方向与速度,讲会计算一个最佳的拦截位置。然后你会发现这只是一个简单的追踪问题。且需要的时间t最少。
整个3种追踪的源码代码 以及 demo都共享:
/Files/expter/chase.rar
下一篇通过实例demo来记录学习的聚类算法: (#)
1.坐标追踪
也是最基本追逐方式,他根据要追踪对象的坐标来修改追踪者的坐标,使两者的距离逐渐缩短。
一个简单的例子:
Point m_pPrey; /// 被追踪者
Point m_pAtta; /// 追踪者
对于追踪者来说: 新位置 = 旧位置 + XY速度 ;
1if( m_pAtta.x < m_pPrey.x )
2 m_pAtta.x ++;
3else if( m_pAtta.x > m_pPrey.x )
4 m_pAtta.x --;
5
6
7if( m_pAtta.y < m_pPrey.y )
8 m_pAtta.y ++;
9else if( m_pAtta.y > m_pPrey.y )
10 m_pAtta.y --;
2.视线追踪
视线追踪方式,主要是描述每一时刻都追踪者会沿着被追逐者之间的直线方向运动。如图所示:
通过图可以更好描述此问题,此问题的求解关键在于求出连接追踪者与猎物之间的直线,可以通过向量知道:2个向量想减即可得到。
可以分别用追踪者与猎物的位置坐标构造出两个向量,假设b 代表追踪者位置向量,a 代表猎物位置向量。做向量减法a-b 便得到了向量c,将c 的起点置于追踪者的位置上,就得到了一条指向猎物的向量c. 此时,令:
3.拦截追踪
所谓拦截追踪,如果考虑的是被追逐的目标太远,如果2者速度一样,或者相差不大,有可能很难追上,玩过实况足球的都知道,如果采用上面的2中追逐方式,可能错过最佳的防守位置。下面是拦截追踪的一个示例图:
对于追踪者来说,他只需要知道被追踪者的位置,方向与速度,讲会计算一个最佳的拦截位置。然后你会发现这只是一个简单的追踪问题。且需要的时间t最少。
整个3种追踪的源码代码 以及 demo都共享:
/Files/expter/chase.rar
下一篇通过实例demo来记录学习的聚类算法: (#)
相似形中作辅助线的几种常见方法
3D中常见的几种天花装饰
工资的几种算法?
几种常见的病。
请问几种常见鱼的特征
aword bios 的几种常见系列
几种常见的网页浏览器类型
简述常见的几种加密类型。
汕头常见的几种传染病
组织结构常见的几种形式
常见的几种音乐格式中,哪种格式的效果最好,哪种其次?最好给个排序
几种常见的网络聊天工具 或 常见几个网络聊天软件公司的发展历史
现有的图像压缩算法都有那几种?
计算机最常见的几种不能上网的原因????
列举几种重要的常见的氧化剂和还原剂
介绍几种常见又好吃的菜的做法
关于常见的几种街机模拟的分类
请介绍几种常见的下载方式及简称
谁能告诉我北京几种常见的疾病???
上市公司会计舞弊的几种常见形式?
比较常见的几种抽奖活动形式
请问常见的网上支付系统有那几种?
最常见的几种心理病是什么?
能不能给列举一下常见的几种后置定语?