我有两点,(x1,y1)
和 (x2,y2)
,我想在它们之间画一条线。我知道我可以使用反正切和斜率计算出该线的角度(以度为单位):
atan((y2-y1)/(x2-x1))*180/pi
但是,我如何将这个角度转换为 [0,360] 比例?基本上,我希望我的角度在罗盘刻度上,其中“北”为 0 度,“东”为 90 度,“南”为 180 度,“西”为 270 度。
谢谢!
最佳答案
(450-atan2(y2-y1,x2-x1)*180/pi)%%360
segmentToAngle <- function(x1,y1,x2,y2) atan2(y2-y1,x2-x1)*180/pi;
segmentToAngle(0,0,1,0); ## east
## [1] 0
segmentToAngle(0,0,0,1); ## north
## [1] 90
segmentToAngle(0,0,-1,0); ## west
## [1] 180
segmentToAngle(0,0,0,-1); ## south
## [1] -90
segmentToCompassAngle <- function(x1,y1,x2,y2) (450-segmentToAngle(x1,y1,x2,y2))%%360;
segmentToCompassAngle(0,0,1,0); ## east
## [1] 90
segmentToCompassAngle(0,0,0,1); ## north
## [1] 0
segmentToCompassAngle(0,0,-1,0); ## west
## [1] 270
segmentToCompassAngle(0,0,0,-1); ## south
## [1] 180
关于r - 如何轻松地将线角转换为导航方位比例尺(即,范围为 [0,360] 且 "North"= 0 度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838855/