Robocode基本原理之方向剖析 - 编程入门网
k1的数据heading:64.421114…~ 64,说明 它正好坐落在屏幕绝对方向系64度的地方。也就是说GenyTrack1当前的Heading 方向为64度。
图二 图二解:大家观察机器人GenyTrack1的数据heading:161.79…,说明它正前方 正好正对屏幕绝对方向系161度的地方。也就是说GenyTrack1当前的Heading方向 为161度。而我们的Geny正前方正对35度的地方。 大家对照着方向系一看我想一切就会明白的。是不是有点成就感了,不急, 后面还有。 Robocode基本原理之方向剖析(4)时间:2010-11-29 IBM Skyala.Li相对方向系Bearing: Bearing,Bearing 该死的Bearing,我想大家头痛的就是它的。在此我们就 以机器人的雷达(Radar)为例来说明,源程序(GenyTrack1)中我们用到的是事 件:onScannedRobot(ScannedRobotEvent e) ,所以我们要用到的就是Radar的 Heading,其它相关的如Bullet,Gun的方法类似,有兴趣的朋友可以自己测试一 下。 我们先把数据近似提出来如下表:
在此处机器人和Radar的Heading我想大家对照图上的方向系及上面的绝对方 向体系说明应该明白了,只是要注意机器人哪是前哪是后:详见Robocode机器人 解剖图. (Geny 的Heading在此处没有用上,只是给大家参考一下)你看我们的 GenyTrack1前面正对着161角,雷达在屏幕276度角的地方发现了Geny机器人。所 以此处的Geny和GenyTrakc1相差的角度=|276-161|度(取绝对值,正负由转动方 向决定),由于此时的Geny机器人正位于 GenyTrack1顺时针方向上(GenyTrack1 的0,180之间),所以相对角度Bearing就是顺时针方向(+114)度,(图上每次数据 有一小点差是由于打印的数据及低级机器人完成所有代码后才进行处理事件。不 是即时的。要即时处理涉及到高级机器人AdvanceRobot的一些特性)。 下面得到相对角度是为负的图:原理同上。 图三
|238-57|,由于Geny处于GenyTrack1背后(-180,0)。为逆时针方向所以为负 。 时针略说: 顺时针和逆时针是看另一机器人是在你的Heading角度的(0,180)还是(- 180,0)之间。 再这次提醒:Heading是个静态角度,正上方总为0.不管是取Heading,还是 取方向 Bearing是个角度差值,是由参照的Heading和发现时的Heading的差值。 好了,方向的问题就说到这,这是Skyala.Li的理解,欢迎大家来讨论。此处 没有引用坐标系的详细说明。请看: Robocode 基本原理之坐标系剖析 |
||||||||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |