已知弧的长度L和弦长D求半径R?假设弧角度为AL=A*R即A=L/RsinA=L/2*R得sinL/R=L/2*R一个未知数R,可怎么求这个R呢,我自己用LISP写了个解这个超越方程的(defun c:qr()(setq pt1 (getpoint "\n请选择第一点:"))(setq
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/17 16:35:05
已知弧的长度L和弦长D求半径R?假设弧角度为AL=A*R即A=L/RsinA=L/2*R得sinL/R=L/2*R一个未知数R,可怎么求这个R呢,我自己用LISP写了个解这个超越方程的(defun c:qr()(setq pt1 (getpoint "\n请选择第一点:"))(setq
已知弧的长度L和弦长D求半径R?
假设弧角度为A
L=A*R即A=L/R
sinA=L/2*R
得sinL/R=L/2*R
一个未知数R,可怎么求这个R呢,
我自己用LISP写了个解这个超越方程的
(defun c:qr()
(setq pt1 (getpoint "\n请选择第一点:"))
(setq pt2 (getpoint pt1 "\n请选择第二点:"))
(setq l0 (distance pt1 pt2))
(setq a (getint "\n请输入弧长:"))
(while (< a l0)
(princ "\n不能小于弦长")(princ l0)
(setq a (getint ",请重新输入弧长:"))
)
(setq r1 100000000)
(if (> (/ l0 2) (/ a (* 2 pi)))
(setq r2 (/ l0 2))
(setq r2 (/ a (* 2 pi)))
)
(setq r (* 0.5 (+ r1 r2)))
(setq l (* 2 r (sin(* 0.5 (/ a r)))))
(setq n 0)
(while (> (abs(- l l0)) 0.1) ;精度
(if (> l l0)
(setq r1 r)
(setq r2 r))
(setq r (* 0.5 (+ r1 r2)))
(setq l (* 2 r (sin(* 0.5 (/ a r)))))
)
(command "arc" pt2 "e" pt1 "r" r)
(princ "\n")(princ r)
(princ)
)
已知弧的长度L和弦长D求半径R?假设弧角度为AL=A*R即A=L/RsinA=L/2*R得sinL/R=L/2*R一个未知数R,可怎么求这个R呢,我自己用LISP写了个解这个超越方程的(defun c:qr()(setq pt1 (getpoint "\n请选择第一点:"))(setq
超越方程,用只能用逼近法推的了~ 用计算机来做也可以
这是哪种编程啊?