只需一步,快速开始
LISP中没有反余弦函数,但计算中常知道三角形的三个边,这时需要求出该三角形的一个角则没有相应的反余弦函数拿来用.相关计算公式:arccos(A)=arccos[(b*b+c*c -a*a)/2*b*c].如何定义这样一个函数呢?
恳请哪位大侠指教!
谢谢!
使用道具 举报
(defun acos(val)
(atan (/ (sqrt (- 1.0 (* val val))) val))
)
这样可以避免出现差错,也可加快运行 !
(defun acos (x / ls ) (cond ((= x 0) (setq ls (* 0.5 pi))) ((= x 1) (setq ls 0)) ((= x -1) (setq ls pi)) ((> (abs x) 1) (alert " ** ERROR ** \n arccos(x)的最大值是 1") (setq pbcos "ERROR" ls 0) ) ((< (abs x) 1) (setq ls (atan (/ (sqrt (- 1 (* x x))) x)) ) ) );cond );defun acos
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-4-19 19:02 , Processed in 0.165512 second(s), 24 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.