欢迎光临散文网 会员登陆 & 注册

S8G8 蚂蚁爬圆柱

2021-03-03 09:47 作者:学用数学  | 我要投稿

先前完成了蚂蚁爬长方体,关键在于长方体的展开。这次的任务要来挑战蚂蚁爬圆柱,关键也在如何对圆柱作展开。其实在于圆如何展开。利用 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


S8G8 蚂蚁爬圆柱的评论 (共 条)

分享到微博请遵守国家法律