在LWJGL中根据x和y轴找到角度时出错

时间:2015-02-07 21:29:34

标签: eclipse 2d lwjgl angle

我正在用LWJGL编写一个程序,我用双打制作了一个基本的x和y轴,我试着用函数计算鼠标(黑盒子)相对于用户的角度(灰盒子)。它运作良好但由于某种原因,角度仅从0到90到0到负90并回到0。

http://imgur.com/a/n6Bm7#0

这是一张说明我问题的imgur专辑

这是我的函数代码

public double calcAngle(double x, double y) {
        //double DEG2RAD = 0.0174532925;
        double RAD2DEG = 57.2957795;
        double h = Math.pow(x, 2) + Math.pow(y, 2);
        h = Math.pow(h, 0.5);
        double z = y / h;
        z = Math.asin(z);
        z = z * RAD2DEG;
        return z;
    }

1 个答案:

答案 0 :(得分:0)

这里的问题是Math.asin返回介于-90<之间的值。 x< 90(http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html

要解决此问题,您可以添加一些逻辑来查看x坐标是否为负数。如果是负x,则必须执行“返回180 - z”而不是“返回z”

这会给你一个-90°的角度范围。 x< 270。