圆算法问题,求数学高手(200分)

  • 主题发起人 主题发起人 lee1225
  • 开始时间 开始时间
L

lee1225

Unregistered / Unconfirmed
GUEST, unregistred user!
求一个圆的半径R
此圆符合下列条件:
给出小圆半径r和小圆个数N,在大圆上等分N等份,
以等分点为圆心,以r为半径,在大圆上画N个小圆,
要求各小圆不能相交。
给出的条件为小圆的个数N,半径r,及大圆的半径R。

急,请高手指教
 
不知所谓。
 
要在一个大圆上画N个半径为r的小圆,小圆的圆心为大圆的N等分点,要求各小圆相切,求这个大圆的半径
 
r/(sin(180/n))
 
大圆的半径哦
 
N=1, R=r
N=2, R=2r
N=3, R=(3+2*sqrt(3))r/3
N=4:,R=(1+sqrt(2))r
N=5, ??
N=6或7, R=3r
我晕了...
 
这是一个求边长为2r的正N边形的外接圆半径的问题 用三角公式直接算就行了
 
能否给出算法,如果我还能记得三角函数就不用问大家了
 
心随风童鞋的答案就是正确滴
r/(sin(180/n))
 
看了楼主的提问和某几位主的回答,我终于明白有很多人初中没毕业就直接当程序员了...
另外建议楼主,除了补习一下初中数学,还应该补习一下小学语文。从你一楼的提问看,大圆的 R 显然是一个可变的数字,很可贵的是您终于在 3 楼告诉大家各个小圆相切...
再次感谢心随风,让楼主知道了世界上还有一门数学分支叫三角,还让楼主知道了两个相切圆的圆心连线通过切点...
 
r/(sin(180/n))
n=1, 公式=r/(sin(180/1))=r/(sin(180))=r/0
n=2, 公式=r/(sin(180/2))=r/(sin(90))=r/1=r 这个最让人喜欢:买一送一,可以一直切下去
n=3, 公式=r/(sin(180/3))=r/(sin(60))=r/(3^0.5/2)=1.15r
n=4, 公式=r/(sin(180/4))=4/(sin(45))=r(2^0.5)=1.414r

我得去借本算术书来学了...
 
心随风童鞋的答案正确R=r/(sin(180/n)) ,180是度数,不是弧度。
 
按弧度计算:
var n:integer; r:real;
begin
for n:=1 to 10 do begin
r:=1/(sin(180/n));
Memo1.Lines.Add(format('n=%d , R=%10.6fr',[n,r]));
end;
end;
结果:
n=1 , R= -1.248202r
n=2 , R= 1.118572r
n=3 , R= -3.280726r
n=4 , R= 1.175221r
n=5 , R= -1.008289r
n=6 , R= -1.012113r
n=7 , R= 1.820448r
n=8 , R= -2.052653r
n=9 , R= 1.095356r
n=10 , R= -1.331581r

按度计算:
var n:integer; r:real;
begin
for n:=1 to 10 do begin
r:=1/(sin(PI/n));
Memo1.Lines.Add(format('n=%d , R=%10.6fr',[n,r]));
end;
end;
结果:
n=1 , R=-1.84467440737095516E19r
n=2 , R= 1.000000r
n=3 , R= 1.154701r
n=4 , R= 1.414214r
n=5 , R= 1.701302r
n=6 , R= 2.000000r
n=7 , R= 2.304765r
n=8 , R= 2.613126r
n=9 , R= 2.923804r
n=10 , R= 3.236068r

还会是什么度呀?
:)
 
多人接受答案了。
 
后退
顶部