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 创建
此问题基于
基本上,如果我们能找到两个轴承之间的差异,我们是否可以找到物体需要转动的一侧以实现最小的旋转量。
使用 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 创建