gpt4 book ai didi

java - 计算两点之间的角度 - java

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:07:13 27 4
gpt4 key购买 nike

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

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

enter image description here

到目前为止,这是我尝试过的:

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));
}

说它没有提供正确答案是没有意义的。

最佳答案

您可以使用以下方法使用 Math.atan2 方法计算以弧度为单位的角度:

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 将结果角度从弧度转换为度数):

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 类。这只是为了证明它有效。

关于java - 计算两点之间的角度 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26076656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com