弧度到度、分钟和
将弧度转换为度、分和秒的函数,作为数字进行操作(不是文本)谢谢
(defun rtod( x) ;radians to degrees
(/ (x 180.0) pi)
)
(defun dtor(x) ;degress to radians
(* (/ x 180.0) pi)
)
(setq deg 90.)
(setq rad (dtor deg))
;1.5708
(cvunit rad "radians" "degrees")
;90.
不确定你的意思(不是文字)?
(angof 1.5708 1 4) ? 谢谢你这么快的回复。请允许该函数不仅将RAD转换为DEC,还可以转换为DMS(度、分和秒)
. 例子:
问题=0.5811849(RAD)
答案1=33.2994444(12月)
答案2=33°17’58“(DMS)
此外,如果可能的话,我希望通过引用(而不是通过值)将数据发送到函数
有人提到它们不是文本,因为我必须使用函数返回的DMS角度执行操作
谢谢您 _$ (angtos 0.5811849 1 4)
"33d17'58\""
_$ (angtos 0.5811849 0 4)
"33.2994" 或者这个
(setq ang 2.40542)
(setq ang (/ (*ang 180.0) pi)) ; convert to decimal degrees
(setq deg (fix ang))
(setq mins (* 60.0 (- ang (fix ang))))
(setq sec (* 60.0 (- mins (fix mins))))
(setq mins (fix mins))
(alert (strcat "Degs = " (rtos deg 2 0) "\nMins = " (rtos mins 2 0) "\nSecs = " (rtos sec 2 0)))
哎呀。。只是注意错别字应该是
(angtos 1.5708 1 4)
angtos接受3个参数
angtof只接受将角度(字符串)转换为弧度的单个参数
感谢李对OP的投入
受保护的符号
由angtos转换的DMS值是一个字符串(你是指文本?),您无法执行算术计算(+-*/等),参数应该是数字
除非(angtos(+ang1 ang2)1 4);其中ang1 ang2必须是数字(弧度)
引用是否意味着参数?来自库,但可能不是您想要的,因为结果是“Text”(字符串)
;限制prec 谢谢,将代码改为MINS,忘记了最小值。
我想我明白了“没有短信”?返回列表
此代码改编自旧线程
(defun angltof(l);hanhphuc(if(vl every’)((x)(和(
页:
[1]