计算两点之间的角度 - java [英] Calculating angle between two points - java

查看:65
本文介绍了计算两点之间的角度 - java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要计算两点之间的角度(以度为单位),其中一个固定点通过一条线与给定的两点相连.

I need to calculate the angle in degrees between two points, with a fixed point that is connected with the given two points by a line.

这是一张说明我需要的图片:

Here is an image that illustrates what I need:

这是我迄今为止尝试过的:

Here is what I have tried so far:

public static float GetAngleOfLineBetweenTwoPoints(float x1, float x2, float y1, float y2) {
        float xDiff = x2 - x1;
        float yDiff = y2 - y1;
        return (float) (Math.atan2(yDiff, xDiff) * (180 / Math.PI));
}

说它没有提供正确答案毫无意义.

It's pointless to say that it doesn't provide the correct answer.

推荐答案

您可以使用以下方法使用 Math.atan2 方法计算以弧度表示的角度:

You can have the following method that calculates the angle in radians using the Math.atan2 method:

public static double angleBetweenTwoPointsWithFixedPoint(double point1X, double point1Y, 
        double point2X, double point2Y, 
        double fixedX, double fixedY) {

    double angle1 = Math.atan2(point1Y - fixedY, point1X - fixedX);
    double angle2 = Math.atan2(point2Y - fixedY, point2X - fixedX);

    return angle1 - angle2; 
}

并用三个点调用它(使用 Math.toDregrees 将结果角度从弧度转换为度数):

And call it with three points (using Math.toDregrees to transform resulting angle from radians to degrees):

System.out.println(Math.toDegrees(
            angleBetweenTwoPointsWithFixedPoint(0, 0, // point 1's x and y
                                                1, 1, // point 2
                                                1, 0  // fixed point
                                               )));

输出:90.0

尽管可以在您的解决方案中随意使用 Java 的标准 PointLine2D 类.这只是为了证明它有效.

Feel free to use Java's standard Point or Line2D classes in your solution though. This was just to demonstrate it works.

这篇关于计算两点之间的角度 - java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆