在计算角度之间的最短距离后,Java检查是否旋转太多

时间:2014-09-29 13:50:44

标签: java rotation

我发现了一篇关于如何计算将最短距离旋转到直角的方向的帖子。但现在我想检查它是否旋转过多。

以下是代码:

if (angle < angleTo)
            {
                if (Math.abs(angle - angleTo) < 180)
                {
                    angle += deltaSeconds * 200;
                    //I want to test here
                }
                else
                {
                    angle -= deltaSeconds * 200;
                    //here
                }
            }

            else if (angle > angleTo)
            {
                if (Math.abs(angle - angleTo) < 180)
                {
                    angle -= deltaSeconds * 200;
                    //here
                }
                else
                {
                    angle += deltaSeconds * 200;
                    //and here
                }
            }

1 个答案:

答案 0 :(得分:0)

我没有检查你是否将角度旋转得太远,而是预先计算距离,如果距离小于deltaSeconds * 200,则只需旋转剩余的距离(或只是设置angle = angleTo)。

此外,您可能希望确保angle保持在边界[0,360]内。

编辑:以下代码将为您提供距离:

double distance = Math.abs(angle - angleTo);
if(distance > 180) {
    distance = 360 - distance;
}
//If you want, you could replace the if-statement with this line:
//distance = (distance > 180) ? 360 - distance : distance;