C#中已知两个点的坐标,人物从点一移动到点二的距离和角度如何计算

C#中求人物从点一移动到点二的距离和角度,利用三角函数和勾股定理,变量为
Point1X Point1Y point2X point2Y.
要求输入四个数值显示两点的距离和角度。

img

img


这个问题卡了好久了,我计算了弧度,也进行了弧度和角度的转换,但是测试的时候一直不运算,debug了很久不知道怎么办了。

img

条件:假设点一(X1,Y1),点二(X2,Y2)。

(1)计算两点之间的角度公式是:

public static float getAngle(float X1, float Y1, float X2, float Y2)
{
    float angleOfLine = 0;
    angleOfLine = (float)(Math.Atan2((double)(Y2 - Y1), (double)(X2 - X1)) * 180/ Math.PI);
    return angleOfLine;
}

假设点一是坐标原点(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;
其实两个点之间的连线是分正负角度的,最少C#是这么区分的,他不是360度。

(2)计算两点之间的距离公式是:

public static float getDistance(float X1, float Y1, float X2, float Y2)
{
    float result = 0;
    result = (float)(Math.Sqrt((X1 - X2) * (X1 - X2) + (Y1 - Y2) * (Y1 - Y2)));
    return result;
}