x,y指向度数

Dav*_*jad 0 python trigonometry

我有一个元组(x,y)x和y元素[-1,1].元组表示任何方向的运动.我想将其转换为360度角,其中0代表北方.

我特别喜欢python中的解决方案.

dan*_*dle 7

我不会给你解决方案,但我会指出你正确的方向.大多数编程语言都有一个名为的函数atan2,它将x和y值作为输入,并计算点与正x轴之间的弧度角度.它会自动处理象限问题.

http://en.wikipedia.org/wiki/Atan2

  • 谢谢,解决方案就是“math.atan2(x, y)”,以弧度为单位的解决方案。 (2认同)

Ale*_*lex 7

根据"北"的含义,即沿着哪个轴,以及角度应该朝哪个方向,以下代码应该是您问题的解决方案:

 math.atan2(y,x)/math.pi*180
Run Code Online (Sandbox Code Playgroud)

这将给出与原点的点(x,y)的角度,沿x轴逆时针的"北"角.

  • 数学模块中有"度"功能,可以在弧度和度数之间进行转换 (3认同)
  • 请注意,这给出了 -180 到 180,您可能需要旋转 x 和 y,如果您想要 0-360,则添加 180 (2认同)