ll_j
发表于 2015-11-20 10:27:40
自贡黄明儒
发表于 2015-11-20 10:48:38
ivde 发表于 2015-11-20 10:25 static/image/common/back.gif
L=R x a
R x sin(a/2) = H / 2
还有个判断优弧/劣弧
如能作图求解,是最好不过的事,不用为一堆公式发愁了。
自贡黄明儒
发表于 2015-11-20 11:18:46
fl202 发表于 2015-11-20 09:43 static/image/common/back.gif
楼上公式错了吧?
cos(L/2R)=(R-H) / R 而且这个方程不好解。
先用excel计算不对,帮看看问题出在什么地方
ivde
发表于 2015-11-20 11:47:01
本帖最后由 ivde 于 2015-11-20 13:47 编辑
(L/2)^2+(R-h)^2=R^2
h^2-2Rh+L^2/4=0
R=(h^2+L^2/4)/2h
Linhay
发表于 2015-11-20 11:50:33
fl202 发表于 2015-11-20 09:43 static/image/common/back.gif
楼上公式错了吧?
cos(L/2R)=(R-H) / R 而且这个方程不好解。
他这是一阶精度近似的,要精准就要更高阶
zzyong00
发表于 2015-11-20 13:12:38
本帖最后由 zzyong00 于 2015-11-20 13:14 编辑
http://bbs.mjtd.com/forum.php?mo ... 6515&fromuid=332660
图文并茂
-------------
错了,好像不是你要的!请无视
Linhay
发表于 2015-11-20 13:36:05
我根据我发的图片做了一下,一阶偏差在9.02%左右,高阶的方程我不会解.只能做到这个地步了.建议如果想要精确点可以人为的把这9%去掉,不是办法的办法
自贡黄明儒
发表于 2015-11-20 14:44:50
(defun C:MyDrawRad (/ E H L P1 P2 PM R S)
(setq L (getreal " >>输入弧长:"))
(setq H (getreal " >输入弦高:"))
(setq R (getradius L H))
(setq s (* (sin (/ (* L 0.5) R)) R))
;;(polar pt ang dist)
(setq p1 (list s 0))
(setq p2 (list (- s) 0))
(setq pm (list 0 H))
(command "_.arc" p2 pm p1)
(setq e (entlast))
(command "_.move" e "" '(0 0) pause)
(princ)
)
lijiao
发表于 2015-11-21 11:13:39
可以用递归的办法解决(只用于劣弧)
yshf
发表于 2015-11-22 17:51:10
参考:http://wenku.baidu.com/link?url=QiERSllil5wMIKKUtQz6KjIIEK3EQdoj7-rgNEgOgsw9vxZ_d1Tdy2J2wpcjvh65Zst3hTNj0G9s30BWSpVXUcg3pF4CteDq3erO0jgLvL_