两个轴承之间的差异(角度)
Posted
技术标签:
【中文标题】两个轴承之间的差异(角度)【英文标题】:Difference (angle) between two bearings 【发布时间】:2018-11-10 09:47:38 【问题描述】:使用geosphere::bearing
我可以计算两条线的方位角,但是可以计算出两条方位角之间的角度吗?
当然,您可以尝试减去或总结方位,但在一个为负而另一个为正的特定情况下,这不起作用。
例如,如果 ber1
= - 175 和 ber2
= 175,则两者之间的角度应为 10。
有什么建议吗?
【问题讨论】:
取角度之间的绝对差(模 360),如果大于 180,则从 360 中减去。abs(ber1) - abs(ber2) = 0
-> 从 360 中减去 0 等于 360,我要说明的一点是,通过实施许多条件可能会得到正确的答案,但也许有一个已经实现了所有这些规则的函数
如果大于180。应该是abs(ber1 - ber2)
。如果您只是在寻找现有功能,那么 Google 就是您的朋友。
对于C#
和C
解决方案,请参阅Turn Direction for Target Heading。
【参考方案1】:
我不确定现成的包,但如果您对解决方案感兴趣,那么您可以尝试
angle_diff <- function(theta1, theta2)
theta <- abs(theta1 - theta2) %% 360
return(ifelse(theta > 180, 360 - theta, theta))
它给出了示例轴承 -175 和 175 之间的角度
angle_diff(-175, 175)
#[1] 10
【讨论】:
180 - abs(180 - abs(theta1 - theta2) %% 360)
也可以
请问您为什么使用%%
运算符?
@adl 没有它的结果例如(-175, 175) 将是负数
@adl %%
(modulo) 用于计算余数,以便将 theta 降低到小于 360。您可以考虑一个示例 angle_diff(450, 45)
来理解计算以上是关于两个轴承之间的差异(角度)的主要内容,如果未能解决你的问题,请参考以下文章