max*_*eld 5 trigonometry r degrees
我正在构建手动/副手/判断因子旋转功能.
显然,旋转二维坐标系270°与其相同-90°且720°相同0°.
我想简化用户输入,使所有值都在-180°和之间180°.
我怎样才能在R中优雅地做到这一点?
Ps.:或者将值存储0°到更有意义360°?用户可能要旋转时钟-和逆时针,所以我觉得-180到180可能是从一个UX点更直观.
小智 6
就像是?
x <- 90 + c(0,360,720)
x
# [1] 90 450 810
(x*pi/360) %% pi
# in radians:
#[1] 0.7853982 0.7853982 0.7853982
# in degrees
((x*pi/360) %% pi)*360/pi
#[1] 90 90 90
Run Code Online (Sandbox Code Playgroud)
您是否只想让所有数字成为余数mod 360?
因此,您可以进行各种求和,并且最终得到的答案在0到360之间。
to_degrees <- function(x) x %% 360
to_degrees(720)
[1] 0
to_degrees(-90)
[1] 270
to_degrees(300 + 100)
[1] 40
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您希望数字在-180到180之间,则只需在末尾取180。
to_degrees <- function(x) x %% 360 -180
现在
0-> -180
360-> 180。