- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
人工智能 游戏系 追逐、闪躲与拦截 追踪是游戏中最常用的也是最基本的人工智能算法。 追踪可以直接根据被追踪者的坐标来修改追踪者的坐标,使两者之间的距离逐渐缩短。 也可以使用向量追踪的方法使追踪看起来更真实。 追踪和闪躲是算法基本是一样的(闪躲是将两者之间的距离增加)。 基本追逐 假设被追踪者的坐标是preyX和preyY,追踪者的坐标是predatorX和predatorY,基本追踪算法如下。 if (predatorX preyX) predatorX --; else if (predatorX preyX) predatorX ++; if (predatorY preyY) predatorY --; else if (predatorY preyY) predatorY ++; prey [ prei ] 猎物 predator [ ’pred?t? ] 捕食者 基本闪躲 颠倒一下判断逻辑,就可以实现闪躲效果 if (preyX predatorX) preyX++; else if (preyX predatorX) preyX--; if (preyY predatorY) preyY++; else if (preyY predatorY) preyY--; 视线追踪 前面的基本追踪法,追踪者沿着45度线移动,直到两坐标之一和被追踪者的坐标重合,再沿着一个坐标方向继续追踪,显得不自然。 基本追踪 视线追踪 比较好的方法是采用视线法,即让追踪者沿着和被追踪者之间的直线方向前进。 假设我们需要由 (x0, y0) 这一点,绘画一直线至右下角的另一点(x1, y1),x,y分别代表其水平及垂直座标。在此我们使用电脑系统常用的座标系,即x座标值沿x轴向右增长,y座标值沿y轴向下增长。 因此x及y之值分别向右及向下增加,而两点之水平距离为x1 ? x0且垂直距离为y1-y0。由此得之,该线的斜率必定介乎于1至0之间。而此算法之目的,就是找出在x0与x1之间,第x行相对应的第y列,从而得出一像素点,使得该像素点的位置最接近原本的线。 对于由(x0, y0)及(x1, y1)两点所组成之直线,公式如下: 因此,对于每一点的x,其y的值是. Bresenham画线法 Bresenham算法是计算机图形学领域使用最广泛的直线扫描转换算法。该方法最初是为数字绘图仪设计的,后来被广泛地应用于光栅图形显示和数控(NC)加工。该算法构思巧妙,使得每次只需检测误差项的符号就能决定直线上的下一个像素的位置。 算法原理如下:过各个像素的中心构造一组虚拟网格线,首先按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后,采用增量计算,使得对于每一列,只要检查一个误差项的符号,就可以确定该列像素中与此交点最近的像素。 算法描述 先考虑斜率k=dy/dx≤1的直线。如上图所示,设直线 方程为 y = kx,其中,k = dy/dx。 假设当前像素的x坐标已经确定为xi,其y坐标为yi,由于坐标(xi,yi)(i=0,1,…)只能取整数,那么下一个像素的x坐标 ,而yi+1的坐标有两种可能: 1)??? 保持不变,即y i+1=yi;或者 2)??? y坐标递增1,即y i+1=yi+1。 令 di+1= di+k,y坐标是否增加1取决于如图所示误差项d i的值。因为直线的起始点在像素中心,所以初始误差d0=0。x每增加1,y的值相应递增直线的斜率值k,即 。一旦di+1≥1,就把它减去1,这样保证di+1在0~1之间。当d i+1≥0.5时,直线 与x=xi+1的垂线的交点最接近于当前像素(xi,yi)的右上方像素(xi+1,yi+1);而当d i+10.5时,其交点更接近于(xi,yi)右边的像素(xi+1,yi)。 为方便计算,令e0=-0.5,e i+1=di+1-0.5,增量为k。当ei+1≥0时,取当前像素(xi,yi)的右上方像素(xi+1, yi+1);而当e i+10时,更接近于右方像素(xi+1,yi)。 标准Bresenhan画线法 void BresenhamLine (int x0, int y0, int x1, int y1, long color) { int x, y, dx, dy; float k, e; dx = x1-x0; dy = y1- y0; k = dy / dx; e = -0.5; x = x0; y = y0; if (dx = = 0) { fo
您可能关注的文档
- 【一轮复习】专题1:中国古代的农耕经济解读.ppt
- 【营销心理学】营销心理学及其发展解读.ppt
- 【优化】2016版高中政治第四单元第九课维护世界和平促进共同发展第二框世界多极化-深入发展解读.ppt
- 【优化】2016年高中历史第五单元中国近现代社会生活的变迁第16课大众传媒的变迁新人教版必修2解读.ppt
- 【与名师对话】2016届高考生物二轮复习:第一部分专题讲座1-1-3解读.ppt
- 【语文】第3课《阿房宫赋》名师(鲁人版必修4)解读.ppt
- 【语文版】八年级语文下册《钦差大臣(节选)》解读.ppt
- 【浙教版】2016年中考科学第一轮复习第18课压强和浮力解读.ppt
- 【中考1对1】2016中考语文复习(课堂):1-1-3+诗词默写解读.ppt
- 【中考备考金钥匙】2015中考历史二轮复习世界古代史、近代史篇共129张解读.ppt
文档评论(0)