QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

楼主: geng75
收起左侧

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

[复制链接]
发表于 2009-6-22 19:27:57 | 显示全部楼层 来自: 中国江苏南通
设弧高h,弧长l,半径为r. 那么这段弧对应的夹角弧度为d=l/r.
5 z# \2 E' a, \4 \7 J$ o由简单的计算可知: 1-h/r=cos(d/2)
+ s) P2 |" s' h* b/ O; o所以由倍角公式得,
0 `* P7 O: ]& M3 U8 Kcos d= 2(1-h/r)^2-1=1-4h/r+2h^2/r^2
. }" j  R4 M9 H& g( C) u4 \又因 d=l/r4 R1 x, ~; g; c& J. G
故得方程:cos(l/r)=1-4h/r+2h^2/r^2' G8 p9 o: n1 u3 j& [8 x
当然,这是超越方程,没法求精确解。所以我们只好退而求其次,求它的近似解。1 F* L$ C/ l$ J' w! b5 I7 Y
考虑cosx的幂级数展开:" M$ M* P; I0 C& z5 A* K3 U- I0 F
cosx=1-1/2*x^2+1/24*x^4-1/720*x^6+...
: s+ c# r+ U& h# R+ E9 T于是上述方程在1阶精度上近似等于:
2 W7 A4 v' x# j* v2 b4(h/l)+(2(h/l)^2-1/2)*(l/r)=0
( H$ }! o4 {/ t* z0 `8 X2 Z从而r=(l/8)*((l/h)^2-4)
* H$ _9 W6 T  w, d当然,如果你想得到更精确的计算值,也可以用牛顿迭代法。这里就不展开了。你可以去看任何一本讲《数值计算》的书。

评分

参与人数 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
& ?6 E' v$ l4 s' G0 j! m设弧高h,弧长l,半径为r. 那么这段弧对应的夹角弧度为d=l/r. * K+ k% I8 L' a
由简单的计算可知: 1-h/r=cos(d/2)
' F# x* Y6 A4 h4 u3 I所以由倍角公式得, ) Y- A: g# M/ p% A, }
cos d= 2(1-h/r)^2-1=1-4h/r+2h^2/r^2
9 y$ S$ Q$ x# Q# p; j, Q又因 d=l/r. b) S9 E# ], [8 ?5 L$ ?2 ^' @
故得方程:cos(l/r)=1-4h/r+2h^2/r^2
5 g: B4 |$ a& {$ P...

4 s2 d3 K) z/ ~% Q' |3 o3 c' A6 m7 n; {! h. l; }, {- M
楼上用泰勒展开式近似计算是个办法,在Excel中用迭代得到数值用在cad中,下面这个式子的精度就足够了:
% d" U" C$ I, O, l4 R% M% T1 p6 E
" V8 J4 {* Z1 R7 P  I !jd.gif

评分

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

查看全部评分

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

回复 21# j422 的帖子

用EXL的方法求解是不得已的事,因下列原因,一直未能推广。
$ p5 z  ^4 o( r, k6 g0 b
4 X0 ~; U/ |: l/ C. {; X! h1.很明确了,无解。要有解必须是400.000000009.
+ e' }( |* h( Z为什么?因为这个565.497是EXL用无限趋近的方法求得的)。0 C, j! N# J, \( _

0 ~) C7 G& P& |  \4 _7 V2.变量求解不是用在这种情况下,因为我们的R是未知的,它无法用具体数值先去表示。变量求解其实是个暴力求解法。如MD5解密一样,首先要有可以对照的数字。
( ?; O& Y  f3 O2 i+ p# U6 a2 T- l, d4 ]4 _, O
所以,要求这个R值,我们必先假定一个R值,而这个R值如果假定得离所求弧长400越接近,那么单变量求出的R值就越近似,精度就越高。
9 \9 b7 m  o( m% O# A  ]/ A& V
" o. n/ Q# \' R" t  e好比:我假设这个R值为565,然后让EXL或MD5去暴力穷解,当解到接近弧长为400这个数值时,非标答案就产生了:R=565.4981,弧长L=400.0003909,5 ]6 Q2 l( k6 b/ m: M
4 y* l- j5 J; H
综上所述,这是个凑答案的方法,是无法正确求得精确解的。
5 n2 ~- G; Y% ?; W2 O5 o
5 k8 R2 F3 D' m但是,有一点可以肯定的是:只用这两个条件只能是近似的求解。无法求出精度为0的值。8 K; U, @( n1 Q

( e& F5 o4 W4 F这个方法

评分

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

查看全部评分

发表于 2009-6-22 22:48:39 | 显示全部楼层 来自: 中国江苏苏州
原帖由 czy12 于 2009-6-22 21:09 发表 http://www.3dportal.cn/discuz/images/common/back.gif5 @/ ~  m1 d6 b1 B" Z3 t1 a
用EXL的方法求解是不得已的事,因下列原因,一直未能推广。
% o2 E& e" l: ~' \
( A$ k+ ?( V% L8 H* m. e2 c1.很明确了,无解。要有解必须是400.000000009.% [* a! `9 N  C2 W( Z
为什么?因为这个565.497是EXL用无限趋近的方法求得的)。) G, g2 P5 d( o. o

+ @( E' L- _, ^8 L! r* k: J9 E2.变量求解不是用在这种情况下,因为我们 ...
- V- x% m% F' h- }
+ I- _0 X( D5 @& X
显示可以精确解到400,精度可设到小数点后30位.
已知弧长L,弧高H。怎么求圆的半径R.JPG

评分

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

查看全部评分

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

评分

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

查看全部评分

发表于 2009-6-23 14:14:39 | 显示全部楼层 来自: 中国江苏无锡
这个问题看见好几次了。呵呵,我也在贴一次,模拟拉伸逼近。
9 S: e( d. b) i9 v上次看成弧长弦长了,现在搞好了~~* ~, x& R# D. S$ ^
(defun c:aaa()* W1 T# z- F3 G8 z
  (setq L1 (getreal "弧L1="))
$ `- h% ?( p5 a! A  (setq L2 (getreal "弦高L2="))' P# D8 Q6 p2 d5 E9 I, L
  (setq PT1 (list 0 L2))
4 I, j# U9 ?' J& }  (setq Ln (/ L1 2))9 I1 c: j" K. P1 N
  (setq jd (/ L2 50))5 ]2 b0 F7 E( T: E  [
  (setq Lxx (+ L1 100))
# T  E& x$ S- l+ A, C. d9 L (while ( or (> Lxx L1)+ k& k: ~# h0 D% u5 U
             (< Ln 0.1)
# M" V( s  n" V; F( X5 o* q        )
, r2 T" U. t& e$ v2 V9 N* K- l  (setq PT2 (list (- 0 Ln) 0))7 {; k3 d7 a' [+ T
  (setq PT3 (list Ln 0))% ?: h! D9 q  \: r- _: f' `
  (command "arc" "none" PT2 "none" PT1 "none" PT3)
9 }+ B: b- G8 M  (command "lengthen" (entlast) "")! c5 M1 n* I) ^6 M
  (setq Lxx (getvar "perimeter"))0 B4 S. U* @$ M9 b
  (setq Ln (- Ln jd)) * {4 k# i( h4 w# v6 }+ [5 U
  (command "ERASE" (entlast) "")
( U& [7 y5 K7 ]4 k; U )
0 o# U7 _" F0 l9 T- e7 m;;;------------------% c+ d5 h2 K* ?0 d1 q; y: t; b
(setq i 10)7 `- I, u# R+ ?! |" U
(repeat i
7 X* _( q1 @3 r' `1 y$ p. Z6 ~ (setq Ln (+ Ln (* 2 jd)))
8 B; f1 _( U# @7 ?8 J- Z (setq jd (/ jd 10))" P! Q. U. X2 `. e& o
(setq Lxx (+ L1 100))7 E- f8 J% {3 J: Y) D7 n8 q
(while ( or (> Lxx L1)
: m2 {& l' p# \- j             (< Ln 0.1)
2 b- Y1 P" m9 n# t# i( I+ V        )# L6 H, q5 j) f& K  S" k/ Z
  (setq PT2 (list (- 0 Ln) 0)). Q# q$ E+ u% s8 P
  (setq PT3 (list Ln 0))
/ |2 D& H- _# F  (command "arc" "none" PT2 "none" PT1 "none" PT3): R/ p. b. s% u$ B2 W; j/ x
  (command "lengthen" (entlast) "")* [6 N6 ?5 x: {* B9 C6 w8 D3 t
  (setq Lxx (getvar "perimeter"))
: V" d+ N. e5 W% p  (setq Ln (- Ln jd)) % `: g+ e  s3 d3 r0 P- f
  (command "ERASE" (entlast) "")4 k! z+ ^  W  X; R4 K9 R5 ]; d
)! @9 k% t$ |7 V& s
)
7 E( }  C+ _8 i$ q& {
9 d) q; w) H. _# ?7 K0 L1 ^7 k5 ]5 @;;;------------------- _2 p6 r: M3 K# M
(setq Ln (+ Ln (* 2 jd)))
' ]5 f4 s% Q  y0 X0 z# u (setq jd (/ jd 50))
3 T2 b* @- W' L6 s, S" i; ~" I (setq Lxx (+ L1 100))4 {, E5 q, y2 h- X
(while ( or (> Lxx L1)
" a4 Z7 X: c: h9 u             (< Ln 0.1)' c( _6 p) i, _, R
        )8 q+ L, e7 i. |& X' ^/ ~3 M& Z
  (setq PT2 (list (- 0 Ln) 0))6 Q$ k( `( \, _6 _, A5 u8 z/ @
  (setq PT3 (list Ln 0))
% ~! @% m7 `2 ?# Q. L) l% a7 b  (command "arc" PT2 PT1 PT3)4 k3 f0 |2 s7 d/ @1 g
  (command "lengthen" (entlast) "")5 a# N! z$ J0 Z/ a3 T& V5 C
  (setq Lxx (getvar "perimeter"))2 t7 _' I2 [, g7 \1 `/ L, m
  (setq Ln (- Ln jd))! `( U, t7 H# Q/ s8 ?" r
     (if  ( or (> Lxx L1)
) C+ c/ O3 v. b0 R7 u. M. C             (< Ln 0.1)3 L# x5 `# s: |" s: `( C
          )
( X6 \4 i! {- s1 Y9 `+ m0 S6 M          (command "ERASE" (entlast) "")
) Z# t1 b8 {3 m5 L          ()
) p3 k: v( |$ _      )
! [( _( \7 V) T, d8 N )- e* ]" n; \9 B9 W. H3 T3 a/ U
);(defun
! m# g, v  Q2 F5 h" X. ^0 a# m7 m
[ 本帖最后由 www1974 于 2009-6-24 14:13 编辑 ]

评分

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

查看全部评分

发表于 2009-6-26 18:00:00 | 显示全部楼层 来自: 中国上海
R=H/1-cos(180°L/2πR)% x- b; v3 ?1 S2 x) t) d
再计算出来就可以,这是我自己计算出的公式,麻烦了点
发表于 2009-7-29 08:35:49 | 显示全部楼层 来自: 中国湖北十堰
公式为:H=L^2/(8*R), ]3 U9 T, L  S5 D. T" q4 P) M
H----弧高" V7 X4 o! j, O3 D) v6 `  F
L---弧长+ s) h7 ?7 m; S6 w, f
R---曲率半径
3 \7 s: R  b2 O2 L  _0 A. B4 y3 t请各位自行验算一下哦!!100%正确哦!!
# j3 G6 s* P6 }& y8 _0 W! l$ m1 C) y! T
[ 本帖最后由 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; d4 ?0 p3 m" f  D- o( c
已知弧长L,弧高H。怎么求圆的半径R?

2 D1 O# V2 i5 d6 i/ r, f- j3 p看来楼主想用六米长的水管做蔬菜大棚
/ Q' o8 j. N6 O" {6 Q4 \已知弧长,设定玄长与玄高即可按下面口诀近似算出R值
  O' b6 V, C4 C& c( `) [  z: z$ v9 P0 W- P7 y0 D7 W+ q
半玄乘半玄除以高再加高(得出的为近似直径)# l6 m. {% O( m3 v6 d% a
8-2-1.jpg
2 O2 `$ z3 k: {5 \4 O9 ~$ N' t  Z8 ?, e- ?
8-2-2.jpg 2 b$ F9 O+ k3 D

9 I& F  d2 P' m5 |6 w[ 本帖最后由 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 )

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