簡體   English   中英

確保角度在 0 到 360 度之間

[英]Ensure an angle is between 0 and 360 degree

我想確保角度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超出此范圍也能正常工作?
  • 有沒有更優雅的方法來做到這一點?

我只想使用模塊化算術。 下面返回 0 到 0、359.999 到 359.999 和 360 到 0,如果這是你想要的。

h_ur <- c(-180,-5,0,90,359.999, 360,720,865)
h <- h_ur %% 360
print(h)
> print(h)
[1] 180.000 355.000   0.000  90.000 359.999   0.000   0.000 145.000

我相信atan2的范圍以弧度為單位:-π <= t <= +π。 相應地計划。 使用模塊化算法。 您需要通過添加 2*π 來轉換負值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM