已知X轴,Y轴坐标,求对应于轴心的角度

deknight 2017-05-05 08:41:05
比如X坐标是0,Y坐标是1,则角度是90,X是0,Y是-1则角度是270,请大神指点
...全文
777 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
deknight 2017-05-05
  • 打赏
  • 举报
回复
多谢各位提示,我的问题可能问的不太准确,还是跟上次的假人有关,写的假人服务端创建假人,行走,喊话,都比较不错了,现在在写假人的自动打怪和PK,假人发现有对象进入范围后,要移动过去,但是现在移动过去后,对应的方向,也就是角度不大准确,我再想想应该怎么问这个问题。。。。。
Forty2 2017-05-05
  • 打赏
  • 举报
回复
引用 8 楼 Libby1984 的回复:
]你的意思是这样算出来的精度不够么?如果只是单纯的要这样算角度肯定要用正切...
正切 = y / x, 当x等于0的时候,是除零错; 当x接近于0的时候,在数字计算上是不稳定的。
xuzuning 2017-05-05
  • 打赏
  • 举报
回复
            Console.WriteLine(Math.Atan2(1, 0) * 180 / Math.PI); //90
            Console.WriteLine(Math.Atan2(1, 0.001) * 180 / Math.PI); //89.9427042395855
  • 打赏
  • 举报
回复
引用 3 楼 Forty2 的回复:
[quote=引用 1 楼 Libby1984 的回复:] 这么简单的数学问题,好好想想不就肯定能知道。思路就是y和x的坐标值就是正切值(即tan),然后使用Math.Atan函数就可以得到该正切值的角度了。
正切不太稳定,特别是x比较小的时候。 要特殊处理。[/quote]你的意思是这样算出来的精度不够么?如果只是单纯的要这样算角度肯定要用正切,如果嫌C#的Math函数正切算的不准,你可以去网上找找有没有专门的数学运算库。
xuzuning 2017-05-05
  • 打赏
  • 举报
回复
这种问题真不该问的
正怒月神 2017-05-05
  • 打赏
  • 举报
回复
Math类库有现成的方法。 Math.Atan2()
白衣如花 2017-05-05
  • 打赏
  • 举报
回复
int theta = 0;
if (x == 0)
{
    if (y > 0)
        theta = 90;
    if (y < 0)
        theta = 270;
}
else
{
    double tan = y / x;
    theta = Math.Actan(tan) * 180 / Math.PI; // tan的反函数名称自己查
}
Forty2 2017-05-05
  • 打赏
  • 举报
回复
Math.Atan2(y, x) * 180 / Math.PI;
Forty2 2017-05-05
  • 打赏
  • 举报
回复
引用 1 楼 Libby1984 的回复:
这么简单的数学问题,好好想想不就肯定能知道。思路就是y和x的坐标值就是正切值(即tan),然后使用Math.Atan函数就可以得到该正切值的角度了。
正切不太稳定,特别是x比较小的时候。 要特殊处理。
  • 打赏
  • 举报
回复
引用 1 楼 Libby1984 的回复:
这么简单的数学问题,好好想想不就肯定能知道。思路就是y和x的坐标值就是正切值(即tan),然后使用Math.Atan函数就可以得到该正切值的角度了。
这个函数返回的角度是以弧度为单位的,乘以 180/Math.PI,可以将弧度转换为角度。
  • 打赏
  • 举报
回复
这么简单的数学问题,好好想想不就肯定能知道。思路就是y和x的坐标值就是正切值(即tan),然后使用Math.Atan函数就可以得到该正切值的角度了。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧