m0_73147359 2022-08-05 03:55 采纳率: 100%
浏览 90
已结题

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

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

img

img


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

img

  • 写回答

1条回答 默认 最新

  • 爱看书的小沐 2022-08-05 07: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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 修改了问题 8月5日
  • 创建了问题 8月5日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效