有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java机器人转向不足

我正在用java构建一个机器人,我正在实现一个转向系统,该系统计算两个坐标(x1,y1),(x2,y2)之间的角度,但是机器人目前正在转向不足,即如果我告诉它转向90度,它只会转向40度,因此我需要输入更多转向。机器人可以左转或右转,这取决于所需的转弯是否大于180。下面的代码工作,但只有当开始航向是在0度,所以我需要代码考虑到当前的位置

        double xDiff = x2 - x1;
        double yDiff = y2 - y1;
        double angle =  Math.toDegrees(Math.atan2(yDiff, xDiff));

        double currentAngle = 0; //is changed after first run 

        angle = (angle + 360) % 360; 

        angle = angle - currentAngle;

使角度介于-180和180之间

     if (angle > 180)  
         angle -= 360;

        if(angle < 0 )
        {
            angle = angle - 45;

        }
        else if(angle > 0)
        {
            angle = angle + 45;

        }

共 (0) 个答案