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 <= 180heading:是机器人方向与屏幕正上方的角度差,方向在0到360之间.bearing:是机器人的某个部件如雷达发现的目标与方向的角度差,顺时针为 正角度在-180到180之间看了这段文字大家可能还是不太明白,整个屏幕哪个是0度角,整个是坐标原 点呢? 顺时针与逆时针的方向如何区分?概念与平面图:在开始说明之前大家先得清楚几个在Robocode中很重要的概念:坐标系:Robocode整个坐标系都是战场屏幕以左下角为原点绝对方向系:Robocode中不管机器人在哪个方向都是以静态战场屏幕为参照 的绝对角度(也即大家说的Heading),正上方为0度角。也即不管是 Robot,Gun,Radar向北为0,向东为90,向南为180,向西为270。相对方向系:相对方向是Robot,Gun,Radar以机器人的动态heading角度为参 照的角度差不再以整个静态屏幕为参照了,叫它相对因为机器人的heading是随 着机器人移动而不停的在改变,heaing只是个相对物体。下图很清楚的说明了坐标系统及绝对方向