关闭
m0_73147359 2022-08-04 19:55 采纳率: 100%
浏览 97
已结题

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

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

img

img


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

img

  • 写回答

1条回答 默认 最新

  • 爱看书的小沐 2022-08-04 23:03
    关注

    条件:假设点一(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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    m0_73147359 2022-08-05 04:34

    我先试试哈。我们要用float。没看到你计算radians啊,我试试看可以吗?如果可以果断采纳

    回复
    m0_73147359 回复 m0_73147359 2022-08-05 04:56

    不可以啊,一直标红。

    回复
    m0_73147359 2022-08-05 04:59

    static float point 1X; static float point1Y; static float point2X; static float point2Y. 说要用到这些变量,然后要转换类型,不可以用double.

    回复
    展开全部11条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月5日
  • 修改了问题 8月5日
  • 创建了问题 8月4日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部