首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何轻松地将直线角度转换为导航标度(即范围为[0,360]和“北”=0度)?

如何轻松地将直线角度转换为导航标度(即范围为[0,360]和“北”=0度)?
EN

Stack Overflow用户
提问于 2015-08-05 17:15:25
回答 4查看 1.6K关注 0票数 2

我有两点,(x1,y1)(x2,y2),我想在两者之间划一条线。我知道我可以用arctangent和斜率计算出这条线的角度(以度为单位):

代码语言:javascript
运行
复制
atan((y2-y1)/(x2-x1))*180/pi

然而,我如何将这个角度转换为0,360度?基本上,我希望我的角度在指南针上,“北”是0度,“东”是90度,“南”是180度,“西”是270度。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-05 19:18:18

为了概括一下@bgoldst的回答:

代码语言:javascript
运行
复制
(A1 - atan2(y2-y1,x2-x1) * 180/pi ) %%360

下面是对这个方程的各个部分的解释:

  1. 您必须使用atan2()而不是atan()atan2()是带有两个参数的arctangent函数。使用两个参数的目的是收集有关输入符号的信息,以便返回计算角度的适当象限。这对于单参数arctangent (atan)函数是不可能的。
  2. 在这种情况下,使用模算子%%给出将角度除以360的剩余部分。以这种方式,我们强迫角度“包围”在360。
  3. 使用atan2计算的角度乘以180/pi,以将弧度(atan2 2的默认输出)的答案转换为度。
  4. 如果我们停下来,得到的角度将基于标准三角函数形式,其中"East“=0度。所有角度都相对于"East“= 0。 通过从某个角度( A1 )减去我们计算的角度,我们可以用A1度来抵消计算的角度。对于导航标度(“北”=0度),我们将设置A1 = 90。 (90 - atan2(y2-y1,x2-x1) * 180/pi )%360
票数 2
EN

Stack Overflow用户

发布于 2015-08-05 17:48:19

代码语言:javascript
运行
复制
(450-atan2(y2-y1,x2-x1)*180/pi)%%360​​​​​​​​​​​​​​​
代码语言:javascript
运行
复制
segmentToAngle <- function(x1,y1,x2,y2) atan2(y2-y1,x2-x1)*180/pi;
segmentToAngle(0,0,1,0); ## east
## [1] 0
segmentToAngle(0,0,0,1); ## north
## [1] 90
segmentToAngle(0,0,-1,0); ## west
## [1] 180
segmentToAngle(0,0,0,-1); ## south
## [1] -90
segmentToCompassAngle <- function(x1,y1,x2,y2) (450-segmentToAngle(x1,y1,x2,y2))%%360;
segmentToCompassAngle(0,0,1,0); ## east
## [1] 90
segmentToCompassAngle(0,0,0,1); ## north
## [1] 0
segmentToCompassAngle(0,0,-1,0); ## west
## [1] 270
segmentToCompassAngle(0,0,0,-1); ## south
## [1] 180
票数 4
EN

Stack Overflow用户

发布于 2018-12-31 22:35:33

为“北”0度。“东”90度“南方”180度。和“西”270度。

您可以使用公式:

f(E,N)=180-90*(1+sign(N))* (1-符号(E)^2)-45*(2+sign(N))*符号(E)

代码语言:javascript
运行
复制
     -180/pi()*sign(E*N)*atan((abs(N)-abs(E))/(abs(N)+abs(E)))

      E=E2-E1 and  N=N2-N1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31838855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档