level 11
贴吧用户_0ay955W
楼主
网上有很多用Geogebra做的圆的面积展开ggb,通过较大量的计算和序列命令实现,下载后学习时,理解上还是有一定难度,主要还是计算太多。本文试图找到一种计算量少的方法展开圆面积:

A = (0, 0)
O = (0, 1)
c: 圆周(O, A)
r1 = 半径(c)
旋转 = 0.1° (角度滑动条,0.1°-----359.9°,增量0.1°)
n = 22 (整数滑动条,2---50,增量2)
拼接 = 0° (角度滑动条,0°-----180°,增量0.1°)
a = 2π* r1
β = 360° - 旋转
r2 = r1 (360°) / β
d: 圆周((0, r2), A)
上边首先作一个圆,计算出其周长a,旋转角是圆打开程度,由于我们要将小圆映射到大圆d上,根据其角度比值 (小圆360度,展开大圆β度)可计算出展开圆半径r2。
B = (0, r2) (大圆圆心)
A' = 旋转(A, -旋转, B)
e: 圆弧(B, A, A')
上边命令是通过旋转A点,可以在大圆上得到同小圆周长长度相等的圆弧e。

有了上边与小圆周等长的圆弧,我们接下来就好操作了:
l1 = 序列(描点(e, i), i, 0, 1, 1 / n)
e': 位似(e, (r2 - r1) / r2, B)
l2 = 序列(描点(e', i), i, 0, 1, 1 / n)
l3 = 序列(中点(l2(i), l2(i + 1)), i, 1, n)
我们在圆弧上均匀取点就行了,同时为了找到扇形顶点,我们把圆弧进一步变换,得到顶点所在圆弧e',同样在 e'上取点,然后取其中点就行了。
l4 = 序列(圆扇形(l3(i), l1(i), l1(i + 1)), i, 1, n)
根据大圆弧上的点和顶点,作出扇形。
由于要拼接,我们把这个扇形列表一分为二,并找到拼接时旋转中心D:
l5 = 提取(l4, n / 2 + 1, n)
l6 = 提取(l4, 1, n / 2)
C = l1(n / 2 + 1)
D = C + (a / (4n), r1 / 2)
l7 = 旋转(l5, 拼接, D)
只显示l6、l7和三个滑动条,隐藏其它对象就行了。

2020年11月24日 08点11分
1

A = (0, 0)O = (0, 1)
c: 圆周(O, A)
r1 = 半径(c)
旋转 = 0.1° (角度滑动条,0.1°-----359.9°,增量0.1°)
n = 22 (整数滑动条,2---50,增量2)
拼接 = 0° (角度滑动条,0°-----180°,增量0.1°)
a = 2π* r1
β = 360° - 旋转
r2 = r1 (360°) / β
d: 圆周((0, r2), A)
上边首先作一个圆,计算出其周长a,旋转角是圆打开程度,由于我们要将小圆映射到大圆d上,根据其角度比值 (小圆360度,展开大圆β度)可计算出展开圆半径r2。
B = (0, r2) (大圆圆心)
A' = 旋转(A, -旋转, B)
e: 圆弧(B, A, A')
上边命令是通过旋转A点,可以在大圆上得到同小圆周长长度相等的圆弧e。

有了上边与小圆周等长的圆弧,我们接下来就好操作了:l1 = 序列(描点(e, i), i, 0, 1, 1 / n)
e': 位似(e, (r2 - r1) / r2, B)
l2 = 序列(描点(e', i), i, 0, 1, 1 / n)
l3 = 序列(中点(l2(i), l2(i + 1)), i, 1, n)
我们在圆弧上均匀取点就行了,同时为了找到扇形顶点,我们把圆弧进一步变换,得到顶点所在圆弧e',同样在 e'上取点,然后取其中点就行了。
l4 = 序列(圆扇形(l3(i), l1(i), l1(i + 1)), i, 1, n)
根据大圆弧上的点和顶点,作出扇形。
由于要拼接,我们把这个扇形列表一分为二,并找到拼接时旋转中心D:
l5 = 提取(l4, n / 2 + 1, n)
l6 = 提取(l4, 1, n / 2)
C = l1(n / 2 + 1)
D = C + (a / (4n), r1 / 2)
l7 = 旋转(l5, 拼接, D)
只显示l6、l7和三个滑动条,隐藏其它对象就行了。
