加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

计算两点之间的角度 – java

发布时间:2020-12-14 05:30:16 所属栏目:Java 来源:网络整理
导读:我需要计算两点之间的角度,以一个与给定两点相连的固定点. 这是一个说明我需要的图像: 这是我迄今为止所尝试的: public static float GetAngleOfLineBetweenTwoPoints(float x1,float x2,float y1,float y2) { float xDiff = x2 - x1; float yDiff = y2 -
我需要计算两点之间的角度,以一个与给定两点相连的固定点.

这是一个说明我需要的图像:

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

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,// point 1's x and y
                                                1,1,// point 2
                                                1,0  // fixed point
                                               )));

输出:90.0

随时可以在解决方案中使用Java的标准Point或Line2D类.这只是为了证明它的作品.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读