本帖最后由 vectra 于 2015-11-20 13:56 编辑
 - (defun acos (n)
- (if (and (numberp n)
- (<= (abs n) 1.0)
- )
- (if (equal n 0.0 0.001)
- (* pi 0.5)
- (atan (/ (sqrt (- 1 (* n n))) n))
- )
- )
- )
- (defun getradius (l h / r k)
- (setq r h)
- (while (> (abs (- r (setq k (/ l 2 (acos (- 1 (/ h r))))))) 0.0001)
- (setq r k)
- )
- k
- )
没有仔细验证 大家可以测试一下 迭代法试算
_$ (getradius 523.6096 66.99)
500.0
试了下只能算劣弧 |