已知弦高H和弧长L,求半径R
本帖最后由 自贡黄明儒 于 2015-11-20 08:37 编辑几何作图,或者计算出公式求解均可,请各位大神帮忙。近似解最好。
本帖最后由 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
试了下只能算劣弧 本帖最后由 伪书虫86 于 2015-11-20 09:05 编辑
cos(L/2R)=(R-H)/R
解这个方程即可 伪书虫86 发表于 2015-11-20 08:34 static/image/common/back.gif
cos(L/2R)=(R-H)*R
解这个方程即可
能出个近似解吗? 自贡黄明儒 发表于 2015-11-20 08:38 static/image/common/back.gif
能出个近似解吗?
解不出来呢,干嘛不直接编程作图呢,出来的结果不是更精确麽 我怎么感觉是 COS(L/2R)=1-H/R
即COS(L/2R)=(R-H)/R
R提不出来 数学功底不行 http://www.zybang.com/question/2240d7ef283399f46168cd28b8e53246.html
via 三维网 本帖最后由 fl202 于 2015-11-23 10:05 编辑
楼上公式错了吧?
cos(L/2R)=(R-H) / R 而且这个方程不好解。
设弦高H和弧长L,半角x(弧度值),求半径R。有方程:
1 L=R* (cos (2*x))
2 H=R*(1-cos(x) )
方程式2/1可以联立得一元二次方程(只含有一个未知数,并且未知数项的最高次数是2的整式方程叫做一元二次方程。它的标准形式为:ax²+bx+c=0(a≠0),根x=[-b±√(b²-4ac)]/2a )
,求解的x , 再根据x值,方程式2可以解出R
中间过程不出了。
最终解为:
R= H / (1-cos(x) )
cos(x)=( -1±(sqrt (1-4*2*H/L*(1+H/L) )/(2*2*H/L)
好难写方程式,lisp、VAB的方程式习惯不一样,我这个是混搭了,能看懂吧? 本帖最后由 ivde 于 2015-11-20 10:31 编辑
L=R x a
R x sin(a/2) = H / 2
还有个判断优弧/劣弧
作图就简单了,做三角形,弦中垂线,另两边垂线交点即圆心