快速业务通道

Robocode基本原理之坐标锁定 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
_bearing = Math.toRadians(heading % 360);  //角度转为弧度      double genyX = getX() + Math.sin(ager_bearing) *  distance;      double genyY = getY() + Math.cos(ager_bearing) *  distance;      out.println("genyX:"+ Math.round(genyX));      out.println("genyY:"+ Math.round(genyY));      if( heading >= 360 )        heading = heading - 360;      if( heading < 0 )        heading = heading +360;      double bearing = getRadarHeading() - heading;      double radar_degree;      boolean radar_direction;      if( 0 <= bearing && bearing <= 180 )      {        radar_direction = LEFT;      }      else if( bearing <= -180 )      {        radar_direction = LEFT;        bearing = ( 360 + bearing );      }      else if( bearing < 0 )      {        radar_direction = RIGHT;        bearing =( -bearing );      }      else      {        radar_direction = RIGHT;        bearing = (360 - bearing);      }      radar_degree = bearing * 1.3 ; //加大每一时间周期 (tick)的扫描范围      if( radar_direction == RIGHT )      {        setTurnRadarRight( radar_degree );        execute();      }      else      {        setTurnRadarLeft( radar_degree );        execute();      }

我们在代码中首先求得GenyMove的绝对角度,然后用扫描时雷达的绝对角度 减去目标GenyMove的角度求得两者的角度差也即我们雷达要旋转的角度。最后利 用一个小技巧radar_degree = bearing * 1.3 使雷达在目标的范围左右摆动以 扩大雷达扫描区域.这样不管目标往哪边移动都在自己的雷达扫描区内。

在此没有进行很详细的讲解了,我想凭你学到的方向及坐标知识很快能明白 个中原理并设计出自己的高级扫描机器人来。聪明的你可能会高兴的想,哈,我 的炮管用相同的办法锁定目标,这样敌人不就没办法跑了,被我追着打。答案是 错误的,雷达的扫描是条长线能直接定位到目标上,它到目标的时间差几乎为零 ,并且雷达的扫描范围比炮管大且精确。而炮管每时间周期只有20度,它定位目 标是依靠着子弹,只有子弹打中了目标,才能说炮管的计算坐标是精确的。但是 由于子弹到达目标位置时需要一定的时间差,子弹本身又有速度值(20-3*power ),所以要想炮管锁定目标并让子弹击中目标,我们还得经过精确的计算,并要 预测目标可能的行动:是直线前进,还是做圆周运动,还是随机运动等等。这些 都是我们要充分考虑的因素。是不是很有挑战性!这一切都在Robocode的世界中 等待着您的创造!

Robocode基本原理之坐标锁定(7)

时间:2010-11-29 IBM 天翼.李Skyala.Li

三角函数基础

下面我们只是很简单的介绍了一下与Robocode相关的三角函数知识,要想了 解详细的,大家可从家中高中代数与几何书中得到这一切。

1.角的概念

在平面内,角可以看作一条射线绕着它的端点旋转而成的图形。如图,一条 射线由原来的位置OA,绕着它的端点O按逆时方向旋转到另一位置OB,就形成角 a.旋转开始时的射线OA叫做角a的始边,旋转终止时的射线OB叫做角a的终边,射 线的端点O叫做角a的顶点。习惯上,我们把按逆时针方向旋转而成的角叫做正角 ;按顺时

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号