计算两点之间的角度并取得方向

需求

给定两个点的坐标,求P2在P1的方位。

思路

通过两点的坐标,计算得到角度,并根据角度范围定义方向位置。

假设点一(X1,Y1),点二(X2,Y2)
假设点一是坐标原点(0,0)点二是(1,0)则这两点之间的连线角度是:0;
假设点一是坐标原点(0,0)点二是(1,1)则这两点之间的连线角度是:45;
假设点一是坐标原点(0,0)点二是(0,1)则这两点之间的连线角度是:90;
假设点一是坐标原点(0,0)点二是(-1,1)则这两点之间的连线角度是:135;
假设点一是坐标原点(0,0)点二是(-1,0)则这两点之间的连线角度是:180;
假设点一是坐标原点(0,0)点二是(-1,-1)则这两点之间的连线角度是:-135;
假设点一是坐标原点(0,0)点二是(0,-1)则这两点之间的连线角度是:-90;
假设点一是坐标原点(0,0)点二是(1,-1)则这两点之间的连线角度是:-45;

示例图

public static int PointsAngleTool(PointF p1, PointF p2)
        {
            int positionInfo = 0;
            double angleOfLine = Math.Atan2((p2.Y - p1.Y), (p2.X - p1.X)) * 180 / Math.PI;//计算两点的正切值并获取角度
            if (angleOfLine > -45 && angleOfLine < 45)//右
            {
                positionInfo = 1;
            }
            else if (angleOfLine > 135 && angleOfLine < -135)//左
            {
                positionInfo = 2;
            }
            else if (angleOfLine > 45 && angleOfLine < 135)//上
            {
                positionInfo = 3;
            }
            else if (angleOfLine > -135 && angleOfLine < -45)//下
            {
                positionInfo = 4;
            }
            return positionInfo;
        }
END
本文作者:
文章标题:计算两点之间的角度并取得方向
本文地址:https://blog.snwl0311.cn/index.php/archives/26/
版权说明:若无注明,本文皆薄·客原创,转载请保留文章出处。
Last modification:May 20, 2022
有钱的给钱,没钱的点赞哦,感谢哥哥姐姐厚爱!