我想确保Angular h_ur
在0到360度之间。
h_ur <- atan2(b, a)*(180.0/pi)
但为了回答这个问题,我将h_ur
简化为:
h_ur <- -5
if (h_ur > 360){
h <- h_ur - 360
} else if (h_ur < 0){
h <- 360 + h_ur
} else {
h <- h_ur
}
print(h)
但是,此代码仅在h_ur
介于720和360之间以及0和-360之间时有效。
- 如何修改代码以确保即使
h_ur
超出此范围也能正常工作? - 有没有更优雅的方式来做到这一点?
2条答案
按热度按时间2g32fytz1#
我只想用模算术。如果你想要的话,下面的返回值是0到0,359.999到359.999和360到0。
第一个
wdebmtf22#
我相信
atan2
的范围是以弧度为单位的:-π〈= t〈= +π。相应地进行规划。使用模运算。您需要通过添加2*π来转换负值