利用GeoGebra来制作圆柱的展开,需要用到的指令并不多。
先来看下效果:
接下来,看看是如何制作的。
圆柱面展开的制作思路
运用的指令有滑动条(slider)、圆柱(cylinder)、曲面(surface),具体语法如下:
滑动条( , , ,)
圆柱( , , )
曲面( , , , , , , , , )
为了制作的方便,我们将圆柱的下底圆心放在(-1,0,0)处,半径为1,高为4(高也可以取其他值)。
于是,可以这么写:
a = 圆柱((-1, 0, 0), (-1, 0, 4), 1)
a = 圆柱((-1, 0, 0), (-1, 0, 4), 1)
刚刚我们提到需要用的指令之一:曲面指令,其实就是已知参数方程,再套进去。
我们最熟悉的大概就是圆的参数方程:
(a,b)为圆心坐标,r为圆的半径
如果要写
现在,我们需要的是下底圆心为(-1,0,0),半径为1,高为4,也就是:
曲面(-1 + cos(θ), sin(θ), h, θ, 0, 2π, h, 0, 4)
如果要让这个曲面能动,那自然是需要变量,我们引进滑动条:
k=滑动条(0,1)
我们需要的展开,其实,就相当于:
圆柱的底面半径在不断增大同时,显示出来的圆柱面最终是变成矩形面在这过程中,也就是完整圆柱面(半径初始时)变为部分圆柱面(半径逐渐增大)完整变化为部分,也就是限定范围:
曲面(-1 + cos(k θ), sin(k θ), h, θ, 0, 2π, h, 0, 4)
半径要不断增大,那就构造一个r,即r = 1 / k
并把系数r放进曲面指令中:
曲面(r (-1 + cos(k θ)), r sin(k θ), h, θ, 0, 2π, h, 0, 4)
咦!k为0时,曲面就不见了——因为此时r即为无穷大。
也就是k为0时,我们需要构造一个矩形面。怎么构造,看着上图来构造,即:
至此,我们就可以书写圆柱面展开的指令:
如果(k == 0, 曲面(0, u, v, u, 0, 2π, v, 0, 4), 曲面(r (-1 + cos(k θ)), r sin(k θ), h, θ, 0, 2π, h, 0, 4))
所以,整个效果的呈现,只需四条指令:
至于另一种效果,只需要改变一下参数的范围,也就是将上面的曲面指令改写为:
如果(k == 0, 曲面(0, u, v, u, -π, π, v, 0, 4), 曲面(r (-1 + cos(k θ)), r sin(k θ), h, θ, -π, π, h, 0, 4))
将两个圆打开的制作
其实就是将圆旋转90度。
用到的指令有圆周(circle)、旋转(rotate)、平移(translate):
圆周( , )
旋转( , , )
平移( , )
将圆旋转0度到90度,需滑动条α:
α=滑动条(0°,90°)
不赘述,下面直接给出相关指令:
g = 圆周((-1, 0, 0), 1, xOy平面)
g' = 旋转(g, -α, y轴)
h = 圆周((-1, 0, 4), 1, xOy平面)
h' = 旋转(h, α, 平移(y轴, 向量((0, 0, 0), (0, 0, 4))))
最后一条,旋转轴,也可以直接写出直线方程。
结语
到了这里,就完成了整个作品。
源文件获取方式:转发本文,并写上轻松get圆柱的展开。