r - 找到转动的一侧以实现两个轴承之间的最小角度

r - find the side of turning to achieve smallest angle between two bearings

此问题基于

基本上,如果我们能找到两个轴承之间的差异,我们是否可以找到物体需要转动的一侧以实现最小的旋转量。

使用 R 中的 solution/function,来自上一个问题:

angle_diff <- function(ber1, ber2){
  theta <- abs(ber1 - ber2) %% 360 
  return(ifelse(theta > 180, 360 - theta, theta))
  }

为了展示这里需要的是 2 个示例:

第一个例子:如果我们有 ber1 = - 175 和 ber2 = 175,为了让物体从方位角 -175 到方位角 175 它需要转动 逆时针 10度。

第二个例子:如果我们有 ber1 = - 10 和 ber2 = 50,为了使对象从方位角 -10 变为方位角 50,它需要转动 顺时针 60度。

求最短项的度数在上面的问题中已经回答了,但是是否可以求得顺时针转还是逆时针转呢?

也许是这样的?

bearing_diff <- function(b1, b2) {
  angle <- b2 - b1
  clockwise <- angle %% 360
  counter_clockwise <- 360 - clockwise
  if(abs(clockwise) < abs(counter_clockwise)) {
    paste(abs(clockwise), "degrees clockwise")
  } else {
    paste(abs(counter_clockwise), "degrees counter-clockwise")
  }
}

bearing_diff(175, -175)
#> [1] "10 degrees clockwise"
bearing_diff(0, 180)
#> [1] "180 degrees counter-clockwise"
bearing_diff(0, 185)
#> [1] "175 degrees counter-clockwise"

reprex package (v0.3.0)

于 2020-08-15 创建