x、y方向的度数

问题描述 投票:1回答:4

我有一个元组 (x, y)xy 在[-1, 1]中。这个元组代表任何方向的运动,我想把它转换成360度角,其中0代表北。我想将其转换为360度角,其中0代表北。

python trigonometry
4个回答
9
投票

根据 "North "的含义,即沿着哪个轴线,以及角度应该去的方向,下面的代码应该是你问题的一个解决方案。

 math.atan2(y,x)/math.pi*180

这段代码给出了一个点(x,y)从原点出发的角度 沿着x轴逆时针方向与 "North "的角度。


7
投票

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

http:/en.wikipedia.orgwikiAtan2


3
投票

数学原理如下。

tan = oppositeadjacent. (在你的例子中分别为y和x)。

arctan(r) = 角度,给定的对角到相邻的比率r。

arctan2 与arctan类似,但考虑了象限问题。

我需要补充的是,这都是针对直角三角形的。

Atan2的严格定义,取自维基百科。:

enter image description here

你可以在这里找到更多信息。http:/en.wikipedia.orgwikiArctan2。


0
投票

这也可以通用于任何两个点组成的线段。

segment = ((x1, y1), (x2, y2))

from math import *

angle = degrees(atan((x2 - x1) / (y2 - y1)))

只要记得检查象限问题

© www.soinside.com 2019 - 2024. All rights reserved.