当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

Robocode高手的诀窍 - 因数避墙法(factored wall avoidance)[Java编程]

赞助商链接



  本文“Robocode高手的诀窍 - 因数避墙法(factored wall avoidance)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我们只要对在 Tracking your opponents' movement中做的机械人加以增补 ,就可以将因数避墙法增添到现有的或讨厌的移动算法中.这种办法将预想的方向 和按照机械人和墙之间距离远近肯定的安全方向作为因数试图找到最大概的方向 .

增添做常见数学计算的帮助办法

我们先要给机械人增添常见数学算法利用的一些帮助办法.

calculateBearingToXYRadians() 办法利用 java.lang.Math 中的 atan2() 办法来计算从 sourceX,sourceY 到 targetX,targetY 的绝对方位,然后再把这 个值转化为相关于 sourceHeading 的相对方位.

我们还需求 normalizeAbsoluteAngleRadians() 办法和 normalizeRelativeAngleRadians() 办法.

清单 1. 数学帮助办法

private static final double DOUBLE_PI = (Math.PI *  2);
private static final double HALF_PI = (Math.PI / 2);
public double calculateBearingToXYRadians(double sourceX, double  sourceY,
   double sourceHeading, double targetX, double targetY)  {
     return normalizeRelativeAngleRadians(
       Math.atan2((targetX - sourceX), (targetY -  sourceY)) -
         sourceHeading);
   }
public double normalizeAbsoluteAngleRadians(double angle) {
   if (angle < 0) {
     return (DOUBLE_PI + (angle % DOUBLE_PI));
   } else {
     return (angle % DOUBLE_PI);
   }
}
public static double normalizeRelativeAngleRadians(double angle)  {
   double trimmedAngle = (angle % DOUBLE_PI);
   if (trimmedAngle > Math.PI) {
     return -(Math.PI - (trimmedAngle % Math.PI));
   } else if (trimmedAngle < -Math.PI) {
     return (Math.PI + (trimmedAngle % Math.PI));
   } else {
     return trimmedAngle;
   }
}


  以上是“Robocode高手的诀窍 - 因数避墙法(factored wall avoidance)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>世界robocode机械人的四大运动办法解析</b>
  • Robocode高手的诀窍 - 圆周对准
  • Robocode高手的诀窍 - 因数避墙法(factored wall avoidance)
  • 在Robocode中操纵Vector实现仇人列表
  • Robocode基本原理之方向解析
  • Robocode基本原理之坐标锁定
  • Robocode高手的诀窍 - 躲避子弹
  • Java.awt.Robot类掌握鼠标和键盘
  • <b>Java的Robot类实现抓屏</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .