QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

楼主: geng75
收起左侧

[讨论] 已知弧长L,弧高H。怎么求圆的半径R?

[复制链接]
发表于 2009-6-22 19:27:57 | 显示全部楼层 来自: 中国江苏南通
设弧高h,弧长l,半径为r. 那么这段弧对应的夹角弧度为d=l/r.
* B+ T( _4 |/ }由简单的计算可知: 1-h/r=cos(d/2)
; _6 P- H) B' S# A% {" i所以由倍角公式得,
# N/ v- t  ~9 t3 S- x0 J4 A, Tcos d= 2(1-h/r)^2-1=1-4h/r+2h^2/r^2% \% c$ }" K+ J6 N( w
又因 d=l/r! o% Q0 B: P$ \7 k$ ?
故得方程:cos(l/r)=1-4h/r+2h^2/r^2
: J& p( J& {: H" V+ Z, h6 Q2 P2 K当然,这是超越方程,没法求精确解。所以我们只好退而求其次,求它的近似解。9 a( {% g3 s# ~' @4 D
考虑cosx的幂级数展开:) j8 K4 f0 b; M" v% P
cosx=1-1/2*x^2+1/24*x^4-1/720*x^6+...
0 m" g( ^& s% B" n2 i于是上述方程在1阶精度上近似等于:
& H  B. H4 j: q5 \" d4(h/l)+(2(h/l)^2-1/2)*(l/r)=04 w! ]/ n- l& z; ~% w% a
从而r=(l/8)*((l/h)^2-4)0 }; l' @- C. B/ ~
当然,如果你想得到更精确的计算值,也可以用牛顿迭代法。这里就不展开了。你可以去看任何一本讲《数值计算》的书。

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 技术讨论

查看全部评分

发表于 2009-6-22 21:02:25 | 显示全部楼层 来自: 中国广东佛山
原帖由 rgyzgwh 于 2009-6-22 19:27 发表 http://www.3dportal.cn/discuz/images/common/back.gif
% x% N' W7 E% M3 \) R设弧高h,弧长l,半径为r. 那么这段弧对应的夹角弧度为d=l/r.
* [2 P" Y( }6 C4 b  K0 r% m由简单的计算可知: 1-h/r=cos(d/2)
% j" U$ y$ \2 b! S( m所以由倍角公式得, - L# \) I1 x* H
cos d= 2(1-h/r)^2-1=1-4h/r+2h^2/r^2
! s' P5 }0 P$ W' K: U又因 d=l/r
: t" w: c& D6 ]7 U$ H  c3 n5 P2 e故得方程:cos(l/r)=1-4h/r+2h^2/r^20 t  [0 p0 y: O1 k* j- a9 e
...
. X6 R9 M* a; E* N; I
, f& v. N+ p4 n  Y% v' Q3 O# [# S
楼上用泰勒展开式近似计算是个办法,在Excel中用迭代得到数值用在cad中,下面这个式子的精度就足够了:
+ r9 p& M+ t( q- x% B8 ~
9 P, u: G+ n" y0 M1 z  d !jd.gif

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 技术讨论

查看全部评分

发表于 2009-6-22 21:09:14 | 显示全部楼层 来自: 中国浙江金华

回复 21# j422 的帖子

用EXL的方法求解是不得已的事,因下列原因,一直未能推广。
7 X2 v0 _. m) V; y1 ^8 c  Z6 k7 c4 V: O& M, H: A
1.很明确了,无解。要有解必须是400.000000009.
  @& v$ e. y3 h; n5 o为什么?因为这个565.497是EXL用无限趋近的方法求得的)。1 X3 }  {5 g9 {2 x; N
9 V2 x* g+ e# l9 s
2.变量求解不是用在这种情况下,因为我们的R是未知的,它无法用具体数值先去表示。变量求解其实是个暴力求解法。如MD5解密一样,首先要有可以对照的数字。
% b- ~4 C& l& z- i; f
, I9 @( C1 ~4 a, A- Q* r所以,要求这个R值,我们必先假定一个R值,而这个R值如果假定得离所求弧长400越接近,那么单变量求出的R值就越近似,精度就越高。- t; G: c$ x: P

: l6 R8 Y: V% J5 [1 l# p4 E$ R: e好比:我假设这个R值为565,然后让EXL或MD5去暴力穷解,当解到接近弧长为400这个数值时,非标答案就产生了:R=565.4981,弧长L=400.0003909,+ j; k2 F' a3 [5 u6 O
$ s9 k5 _8 R# f5 L5 ?
综上所述,这是个凑答案的方法,是无法正确求得精确解的。
( s' A# \3 m9 A1 p2 ~# f! P
7 L& [+ l8 i: f  U2 G" E) ~但是,有一点可以肯定的是:只用这两个条件只能是近似的求解。无法求出精度为0的值。
. d2 k. W- }; v- G3 J% T9 V
% O  O6 F; }8 j' O这个方法

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 技术讨论

查看全部评分

发表于 2009-6-22 22:48:39 | 显示全部楼层 来自: 中国江苏苏州
原帖由 czy12 于 2009-6-22 21:09 发表 http://www.3dportal.cn/discuz/images/common/back.gif
0 V* [7 X( c" o, W) v+ l) c用EXL的方法求解是不得已的事,因下列原因,一直未能推广。
5 o$ P4 u% z( `- O7 A7 `% L8 ~3 V/ h2 N( \: p, K8 D
1.很明确了,无解。要有解必须是400.000000009.% [3 n4 P6 Z. o8 [: A- a/ g0 G
为什么?因为这个565.497是EXL用无限趋近的方法求得的)。
5 b  P% `9 M4 o8 T% P0 ?( n, j0 C
, ]' [& H4 x' O3 I9 W2.变量求解不是用在这种情况下,因为我们 ...

) f1 k8 B) m+ z+ M" p2 H
( H4 v6 K" h+ W1 q显示可以精确解到400,精度可设到小数点后30位.
已知弧长L,弧高H。怎么求圆的半径R.JPG

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 技术讨论

查看全部评分

发表于 2009-6-23 13:53:15 | 显示全部楼层 来自: 中国广西崇左
采用一种新方法“精确选点法”解CAD难题就比较简单,
, ~" h$ c5 y) h下面动画演示只是精度为小数点后四位,如果要更加精确的,可以通过放大图形来作图。
090623.gif

评分

参与人数 1三维币 +5 收起 理由
woaishuijia + 5 技术讨论

查看全部评分

发表于 2009-6-23 14:14:39 | 显示全部楼层 来自: 中国江苏无锡
这个问题看见好几次了。呵呵,我也在贴一次,模拟拉伸逼近。  c) D  N6 ]4 F$ e) A: B
上次看成弧长弦长了,现在搞好了~~: p8 e; O4 ~" X4 v4 t7 k
(defun c:aaa()( o. x; p4 H5 N5 [- T( j
  (setq L1 (getreal "弧L1="))
1 m7 j7 i6 L7 s- y  W9 A7 x& K" V  (setq L2 (getreal "弦高L2="))" E: ~2 v, ~, k1 D" d1 b
  (setq PT1 (list 0 L2))" G1 o" Z; b: y6 w: y, q
  (setq Ln (/ L1 2))  T5 E9 H" R2 A% V7 k" j' t3 |
  (setq jd (/ L2 50))
/ L. ^6 h! ]9 }3 J. m, q$ X% _  (setq Lxx (+ L1 100))
' J. O$ M3 @: I/ Z$ i( e (while ( or (> Lxx L1)
& E1 l; S; C! n. U* e             (< Ln 0.1)$ V, K2 F0 c6 D3 Y) I* Q$ z
        )
# L! Y3 l3 S6 E) {. A  (setq PT2 (list (- 0 Ln) 0))6 l6 P7 |& W; i. N  M3 U; t( B( }: l
  (setq PT3 (list Ln 0)); {" m+ K  Y  g
  (command "arc" "none" PT2 "none" PT1 "none" PT3)
; `3 J7 v# F" i. L: @* J; J' |  (command "lengthen" (entlast) "")
0 r) P! @* k4 o6 _  (setq Lxx (getvar "perimeter"))
7 |/ o! _+ [/ o& W  (setq Ln (- Ln jd)) : E0 f( F) P( M2 q, ?
  (command "ERASE" (entlast) "")/ N; Q; p: Q  O, o
)  U$ L2 L6 l" q5 d+ L
;;;------------------
1 e; x' u% i$ H, k6 B. n8 g(setq i 10)
% q: W& g' d# o5 B  P5 _(repeat i3 D! V0 y3 w- a; t2 i- Q' K) q
(setq Ln (+ Ln (* 2 jd)))' \) ~4 ]# m; n1 @9 y
(setq jd (/ jd 10))
8 c* i6 Q: D  s (setq Lxx (+ L1 100))5 T9 N( Q9 R! d) b1 S; }6 O0 Q
(while ( or (> Lxx L1)% ?  z  ~; M! |, ^5 m3 \
             (< Ln 0.1)
8 M* J6 r2 M2 d- b- f        )# Y+ R& {2 H6 |8 U# q6 A5 x
  (setq PT2 (list (- 0 Ln) 0))
" a5 ^/ I* q+ ^& K$ o. I  (setq PT3 (list Ln 0))6 U$ K4 L% j# ^: c" Q
  (command "arc" "none" PT2 "none" PT1 "none" PT3)0 ?: H- {# \7 G4 e
  (command "lengthen" (entlast) "")
( h) V' b8 h% F' R9 K! ^7 v  (setq Lxx (getvar "perimeter"))
* O- X1 j( B- o+ c% H. J  (setq Ln (- Ln jd))
+ B8 l: D( l0 m: e/ }9 o+ J* v/ Y0 K  (command "ERASE" (entlast) "")* h" |. Q! M5 Y
); @( b6 O1 H/ I
)
" b- `4 B/ W) n3 m2 R  `1 r$ j" Q7 N% {6 A: u) p
;;;------------------
* ]1 p4 Y% s5 i. r$ k+ @7 n (setq Ln (+ Ln (* 2 jd)))
0 n3 N; I1 Z/ W- G (setq jd (/ jd 50))
. I& ~: Q, ?+ } (setq Lxx (+ L1 100))
& j- _( N# ?; Q( F+ [- T  b8 g (while ( or (> Lxx L1)5 R) d. n8 R/ E# ~
             (< Ln 0.1)
# ]0 e; D' z! _7 E        )" P0 ]" w" G- c6 ?
  (setq PT2 (list (- 0 Ln) 0))
# V+ P# T( V  q% s! p6 t  (setq PT3 (list Ln 0))
: q- x0 R7 N7 l2 b  (command "arc" PT2 PT1 PT3)" j: L& o$ D: h% P5 h- K
  (command "lengthen" (entlast) "")
, A# H! b' ^/ x: U+ z  (setq Lxx (getvar "perimeter"))" c* o1 M1 b0 o# S# y) l. Q/ c3 v$ {
  (setq Ln (- Ln jd))
! a: J# R1 d; {* ~- y& ]     (if  ( or (> Lxx L1). ~$ n9 t5 I% c6 z' u# B
             (< Ln 0.1)
# m, t: b9 g# O* N1 ~' w* C: }- |6 p          )5 L. P' k, e+ k, y; ^; }4 H
          (command "ERASE" (entlast) "")( p4 v0 `5 d3 P9 ~7 M
          ()4 s8 A+ Z2 H0 u! m4 j, Q
      )
( I, F, M' K0 G- W1 T3 H9 @1 Q )
4 m( D. m( a% j! W);(defun
+ p& u- n% q3 @$ B8 s* O
( ^& P1 N' {0 [0 v  Z! N[ 本帖最后由 www1974 于 2009-6-24 14:13 编辑 ]

评分

参与人数 1三维币 +10 收起 理由
woaishuijia + 10 技术讨论

查看全部评分

发表于 2009-6-26 18:00:00 | 显示全部楼层 来自: 中国上海
R=H/1-cos(180°L/2πR)- M! T9 a- V+ s
再计算出来就可以,这是我自己计算出的公式,麻烦了点
发表于 2009-7-29 08:35:49 | 显示全部楼层 来自: 中国湖北十堰
公式为:H=L^2/(8*R)
& r# V1 s4 H" d4 z6 qH----弧高# F" b: z, |& _0 W- i  q# f
L---弧长
+ e% m8 u* _5 d% v1 s! D) qR---曲率半径9 E; s, q" f' H( P+ {5 q
请各位自行验算一下哦!!100%正确哦!!, J$ b1 u( x5 b

& U9 r. R0 s5 S( y6 m[ 本帖最后由 shhch_555 于 2009-7-29 15:42 编辑 ]
发表于 2009-7-31 21:24:11 | 显示全部楼层 来自: 中国上海
好多强人,学习中
发表于 2009-8-2 11:36:17 | 显示全部楼层 来自: 中国浙江温州
原帖由 geng75 于 2009-5-12 13:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif' E2 S( w/ P1 h1 X4 Z
已知弧长L,弧高H。怎么求圆的半径R?

  V; d4 {3 b5 |" ^看来楼主想用六米长的水管做蔬菜大棚$ U' e4 I/ \" l4 j
已知弧长,设定玄长与玄高即可按下面口诀近似算出R值
, y$ B+ B  W3 ~9 {: X
& G* p+ P, }. b+ Y2 {4 V半玄乘半玄除以高再加高(得出的为近似直径)+ a7 F; \) i  }: ?) f
8-2-1.jpg ; S, n9 O: |1 d& f" R- Q$ I

3 Q2 R6 S0 ?% O7 i6 g3 J 8-2-2.jpg
1 l' I- m% j- B- o& g( K
( _+ L! Z' Y" f! I* E[ 本帖最后由 wtongong 于 2009-8-2 11:43 编辑 ]

评分

参与人数 1三维币 +5 收起 理由
2005llnn + 5 技术讨论

查看全部评分

发表于 2009-8-7 11:28:24 | 显示全部楼层 来自: 中国重庆
看来这么多介绍,我觉得用EXCEL方法更易于掌握一些,谢谢大家
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表