圆柱展开动画演示(动态演示圆柱的展开)
利用GeoGebra来制作圆柱的展开,需要用到的指令并不多。
先来看下效果:
接下来,看看是如何制作的。
圆柱面展开的制作思路运用的指令有滑动条(slider)、圆柱(cylinder)、曲面(surface),具体语法如下:
滑动条( <最小值>, <最大值>, <增量>,)
圆柱( <下底圆心>, <上底圆心>, <半径> )
曲面( <x表达式>, <y表达式>, <z表达式>, <参变量1>, <起始值>, <终止值>, <参变量2>, <起始值>, <终止值> )
为了制作的方便,我们将圆柱的下底圆心放在(-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圆柱的展开。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com