S8G8 蚂蚁爬圆柱
先前完成了蚂蚁爬长方体,关键在于长方体的展开。这次的任务要来挑战蚂蚁爬圆柱,关键也在如何对圆柱作展开。其实在于圆如何展开。利用 Geogebra 的曲面与曲线指令就可完成这酷炫的 3D 效果。

先备概念
在这次的操作会利用到移动坐标的概念,建议可先参考 S4E09 边绕边转的圆的概念。

关于蚂蚁走长方体,可参考 S7G3 https://www.bilibili.com/video/BV1Qz4y1o7Vb
任务一:绕圆滚动

说明
要达到圆柱在空间中的展开,先从平面上圆的展开来看。要做到圆的展开的效果,主要利用将一个圆滚动,将圆周摊开成一直线的方法。在这节先建立滑动条 t, 在建立动圆的圆心 Ot,接着线端的部分利用 Curve(u*(2pi,0),u,0,1) 来达成。
虽然可用线段 Segment 来达到这个效果,但 Curve 的概念是这节的重点,先绕大家认识 Curve 的基本概念,通过一个参数 u ,来控制曲线的轨迹。
操作
t= Slider(0,1,0.01,1,100)
Ot = (2pi t,0)
cOt = Circle(Ot,1)
l(u) = curve( u*(2pi,0),u,0,1)
任务二:将圆展开

说明
这是本节最困难的一步。主要建立一个移动坐标系,就是图中 Ot,Xt, Yt 所构成的坐标。有了这个移动的坐标系,就可利用这个坐标搭配 cos ,sin 来绘制动圆。
首先是 Xt 的选定,这 Xt 会随着 Ot 往前,同时作顺时间绕转, 而一开始位在 Ot 的正下方,因此, Xt 的设置为 Ot + cos(t)*(0,-1)+ sin(t)*(-1,0) 。这就可到到绕 Ot 转动的效果。接下来为了控制周期为 2pi 。就将 Xt 设为 Ot + cos(2 pi t)*(0,-1)+ sin(2 pi t)*(-1,0) 。类似地,也可设定 Yt 的坐标为 Yt = Ot + (-cos(2 pi t), sin(2 pi t))。
接着就利用 Ot, Xt, Yt, 建立两轴的向量 vx, vy。因此,绕 Ot 转动的摊开圆弧就可设定为 c(t) Curve( Ot+ cos(2pi u) * vx + sin(2pi u) *vy, u, t, 1) 。但这个其实位置还不正确,要将 u 在代换为 (1-u) 才能让曲线终点结束在 Xt 。
有了先前的线段 l(u) 与圆上的圆弧 c(u), 就可利用 If 来将这个两个曲线串联来一起。
操作
Xt = Ot + (-sin(2 pi t),-sin(2 pi t))
Yt = Ot + (-cos(2 pi t), sin(2 pi t))
vx = Vector( Ot, Xt)
vy = Vector(Ot, Yt)
c(u) = Curve( cos(2 pi (1-u)) vx + sin(2 pi (1-u))*vy , u, t, 1)
c2(u) = curve( If(u<=t, l(u), c(u)),u,0,1)
任务三:圆柱的展开

说明
有了圆的曲线展开,通过surface 指令,就可达到空间中的曲面效果。先设定圆柱高度 h,接着利用 Surface( c2(u) + v*(0,0,h), u,0,1, v,0,1) 就可一行生成个动态展开的曲面。
要留意的就是 曲线是一个参数,但曲面是两个参数 u,v 。
操作
h = 3.14
s3 =Surface( c2(u) + v*(0,0,h) , u,0,1 ,v,0,1)
任务四 蚂蚁爬圆柱

说明
这节主要利用先前的曲面 s3(u,v) 建立一个曲面上的曲线。通过 c3(u) = Curve( s3(u,u), u,0,1) 就可得到位在曲面上的曲线。
为了让这个曲线长可以调控长度,再建立一个滑动条 s, 将参数改为 c3(u) = Curve( s3(u,u), u,0,s) ,就可调整曲线长。
若要让曲线多绕几圈,因为曲面的底层架构是动圆,只要加速动圆上的转速就可达到多次缠绕的效果。因此,设定滑动条 n,再将参数改为 c3 = Curve( s3(n*u,u) , u,0,s )。
操作
n = Slider(0,1,0.01,1,100)
s = slider(0,1,0.01,1,100)
c3 = Curve( s3(n u,u) , u,0,s )
小结
这节展示了 Geogebra 制作曲面的便利性,通过曲线参数式再加入第二个参数就可作出曲面,而对曲面的参数再作调整,就可限制为曲面上的曲线。
这节最有挑战的是移动坐标系的概念,这个在处理复合型的移动时相当方便。主要就是解放原本坐标系固定在 (0,0), (1,0), (0,1) 的思维。有了移动坐标系就可作出更多动态的变化。
另外,也有 Geogebra 高手 九月的rain 利用切线的方式来处理圆柱的展开,这个方法也很不错,鼓励大家去参考比较 https://www.bilibili.com/video/BV1ei4y1s7pt
参考链接
【GGB】https://www.geogebra.org/m/wufqzsgg
【Bili】https://www.bilibili.com/video/BV1ky4y1J7Lg
【YouTube】https://www.youtube.com/playlist?list=PLXH05kw-i_5IOyxgGKHsek2beDFrcsPZ7