(if (minusp ia ) ;判断角度正负
(setq sgn -1.0 )
(setq sgn 1.0 )
)
(setq a (abs ia ) ) ;角度绝对值
(setq d (fix a ) ) ;提取度
(setq m (fix (+ (* (- a d) 100 ) 0.01) ) ) ;提取分
(setq s (* (- (* (- a d) 100.0) m) 100 ) ) ;提取秒
(* ( + d ( / m 60.0 ) ( / s 3600.0 ) ) sgn )
)
;度转换成弧度
(defun dtor(d)
(* (/ d 180.0) pi)
)
;弧度转换成度
(defun rtod(r)
(* (/ r pi) 180.0)
)
;度转换成度分秒
(defun DMS(ia / a d m s )
(if (minusp ia ) ;判断角度正负
(setq sgn -1.0 )
(setq sgn 1.0 )
)
(setq a (abs ia ) ) ;角度绝对值
(setq d (fix a ) ) ;提取度
(setq m (fix (+ (* (- a d) 60.0 ) 0.01) ) ) ;提取分
(setq s (* (- (* (- a d) 60.0) m) 60.0 ) ) ;提取秒
(* ( + d ( / m 100.0 ) ( / s 10000.0 ) 0.0000001) sgn )
)