Robocode基本原理之方向剖析 - 编程入门网
Robocode基本原理之方向剖析时间:2010-11-29 IBM Skyala.Li很多研究Robocode的 玩家都被其中的方向及坐标弄糊涂了。下面就跟着 Skyala.Li一起来揭开其中的奥妙。 前言: 很多研究Robocode的 玩家都被其中的方向及坐标弄糊涂了。下面就跟着 Skyala.Li一起来揭开其中的奥妙。 首先我们来看看一段英文的翻译及说明: heading - absolute angle in degrees with 0 facing up the screen, positive clockwise. 0 <= heading < 360. bearing - relative angle to some object from your robot''s heading, positive clockwise. -180 < bearing <= 180 heading:是机器人方向与屏幕正上方的角度差,方向在0到360之间. bearing:是机器人的某个部件如雷达发现的目标与方向的角度差,顺时针为 正角度在-180到180之间 看了这段文字大家可能还是不太明白,整个屏幕哪个是0度角,整个是坐标原 点呢? 顺时针与逆时针的方向如何区分? 概念与平面图: 在开始说明之前大家先得清楚几个在Robocode中很重要的概念: 坐标系:Robocode整个坐标系都是战场屏幕以左下角为原点 绝对方向系:Robocode中不管机器人在哪个方向都是以静态战场屏幕为参照 的绝对角度(也即大家说的Heading),正上方为0度角。也即不管是 Robot,Gun,Radar向北为0,向东为90,向南为180,向西为270。 相对方向系:相对方向是Robot,Gun,Radar以机器人的动态heading角度为参 照的角度差不再以整个静态屏幕为参照了,叫它相对因为机器人的heading是随 着机器人移动而不停的在改变,heaing只是个相对物体。 下图很清楚的说明了坐标系统及绝对方向 Robocode基本原理之方向剖析(2)时间:2010-11-29 IBM Skyala.Li哦似乎明白了一些,可头脑中还有一些不是很清楚。我们来做个测试。测试 方法很简单,写两个机器人,一个什么一动不动坐在原点扫扫Gun并打印出自己的 Heading我们叫它Geny;另一个也不移动,只是Gun进行缓慢的转动同时打印出自 己的Heading,Bearing,和Radar的 Heading,我们叫它GenyTrack1. (注:此处的 数据是double类型,没有进行转化我们近似的认识它为整数,具体的转化方法和 更好测试方法我们会在以后的文章中给出): 代码如下Geny.java
GenyTrack1.java
Robocode基本原理之方向剖析(3)时间:2010-11-29 IBM Skyala.Li要想了解机器人的各个部件及说明请看文章:Robocode机器人解剖图 绝对方向系Heading: 下面是剪切到的Geny和GenyTrack1在不同位置得到的数据图. 图一 图一解:大家观察机器人GenyTrac |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |