当前位置: 首页 > 面试题库 >

Java:计算两点之间的角度(以度为单位)

太叔航
2023-03-14
问题内容

我需要为自己的Point类计算两个点之间的角度,以度为单位,Point a为中心点。

方法:

public float getAngle(Point target) {
    return (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));
}

测试1://返回45

Point a = new Point(0, 0);
    System.out.println(a.getAngle(new Point(1, 1)));

测试2://返回-90,预期值:270

Point a = new Point(0, 0);
    System.out.println(a.getAngle(new Point(-1, 0)));

如何将返回的结果转换为0到359之间的数字?


问题答案:

您可以添加以下内容:

public float getAngle(Point target) {
    float angle = (float) Math.toDegrees(Math.atan2(target.y - y, target.x - x));

    if(angle < 0){
        angle += 360;
    }

    return angle;
}

顺便说一句,为什么您不想在这里使用双精度?



 类似资料:
  • 问题内容: 这是我的尝试,这只是我的代码的一部分: 我正在使用以下公式来获取经度和纬度: 问题答案: 上面Dommer给出的Java代码给出的结果略有不正确,但是如果你正在处理GPS轨迹,则小错误加起来。这是Java中Haversine方法的实现,该方法还考虑了两点之间的高度差。

  • 问题内容: 我正在尝试计算python中两条线之间的角度。我搜索了互联网,找到了如何做的方程式。但是我并不总是能得到准确的结果。当其他结果似乎正确时,其中一些结果显然是错误的。我的代码如下: 它产生的结果是: 问题是我不明白为什么第二个结果,第五个和最后一个结果被归零,因为它们共享一个点,而另一个点却不重复,因为数组中的值不同。 问题答案: 看起来您正在使用Python2,如果两个参数均为int

  • 问题内容: 如何在Java中计算两个角度量度(以度为单位)的差,使结果在[0°,180°]范围内? 例如: 问题答案: /* * Shortest distance (angular) between two angles. * It will be in range [0, 180]. / public static int distance(int alpha, int beta) { int

  • 当我想计算两个日期之间的天数跨度时,我在Java中对日期管理的理解有误。 假设我们有两个不同的日期: 日期1: 1986-01-24 日期2: 2017-04-20 案例1:我有一段使用日期的代码: 产出1: 案例2:使用日历的代码片段: 产出2: 案例3:在Excel中使用电子表格的示例: 当我使用MS Excel来获取这个跨度时,只是引入给定的日期并简单地进行细分,输出如下: 问题 为什么Ja

  • 我有3个锚节点,比如A,B,C。A连接到B,B连接到C,形成一个“开放三角形”。 我需要计算B点两条线形成的角度。 这怎么可能呢?

  • 问题内容: 我需要创建一个类来计算两点之间的距离。我被困住了,我是一个完全的初学者。这是我的课程: 第二课。 我不确定如何在两个定义的点之间获取点对象(中间点)。 我可以创建点对象,但不确定如何通过位于这两个点对象之间的方法返回点对象。 问题答案: 平面上的两个点(x1,y1)和(x2,y2)之间的距离为: 但是,如果您想要的只是两个点的中点,则应将中点函数更改为: 这将返回一个全新的点对象,其点