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

S8G6 让乌龟动起来

2021-02-22 10:25 作者:学用数学  | 我要投稿

在不少程式语言中,都有支援 Turtle 套件,这个套件可让程式新手通过一些回圈的概念来绘制有规律的基本图形。而 在 Gegoebra 也支援一些基本的 Turtle 指令,使用 Geogebra 脚本就可让这 乌龟动起来。本节就用几个入门的例子来开启 Turtle 的第一步。


任务一:用乌龟绘制三角形

绘制三角形

说明:要召唤乌龟需要用 Geogebra 的脚本来控制。因此。需要先增加一个按钮,并对这按钮增加脚本指令来控制。Geogebra 的乌龟基本指令有以下五种:

  • Turtle()  召唤乌龟,

  • TurtleForward(turtle, 2)   让乌龟前进 2 格

  • TurtleBackward(turtle, 3)     让乌龟后退 3 格

  • TurtleRight(turtle, 60) 让乌龟右转 60 度

  • TurtleLeft(turtle, 30)   让乌龟左转 30 度

要让乌龟绘制个等边三角形,就可通过先前进 1格、左转 120度;前进1格、左转 120度;前进1格、左转 120度就可绘制出来。在这要注意的是旋转角度是三角形的外角而不是内角。

操作

ta= Turtle()

TurtleForward[ta,1]

TurtleLeft[ta, 120 deg]

TurtleForward[ta,1]

TurtleLeft[ta, 120 deg]

TurtleForward[ta,1]

TurtleLeft[ta, 120 deg]

任务二:用乌龟绘制共边的正多边形

绘制共边的正n边形

说明:上面已经通过重复三次的前进与旋转来绘制正3角形。但想要绘制正n边形,则可通过 [Repeat] 这指令,来达到重复的效果。

为了让程式可以绘制出正 3,4,5,6,7,8 多边形。可以通过建立滑动条 n,接着将旋转的角度设定为 360/n deg ,就可到此效果。

操作

ta= Turtle()

Repeat[n,TurtleForward[ta,1],TurtleLeft[ta, 360/n deg]]

任务三:用乌龟绘制共点的n角形

绘制共圆的正n边形

说明:在前面绘制的共边的正n边形,随着边数越来越多,其图形也会随之变大。若想要图形大小维持在一定的比例,这时就可利用圆内接多边形。这时要留意角度与长度的计算。

在半径为 1 的圆内接正 n 多边形,其边长为 2*sin(180 deg/n)。

在角度部分,可利用弦切角来得到一开始右转 180*deg/n 。但为了接续后面的正多边形,在每次绘制后,仍需要再左转  180*deg/n 。使其角度归位。

操作

tc = Turtle()

SetCoords[tc,0,1]

TurtleRight[tc,180*deg/n]

Repeat[n,TurtleForward[tc, 2*sin(180*deg/n) ] ,TurtleRight[tc,360*deg/n]]

TurtleLeft[tc,180*deg/n]

任务四:用乌龟绘制共点的n角星

说明:有了共圆的n边形,就可绘制共圆的n角星。再绘制n角星时,还要新增一个滑动条 m 。m 为控制 n 角星连线时要间隔几个顶点。当 m =1 时,就是原先的正 n 边形。上图中,就是 n =12 , m = 5 的情况。而在 m 的选取还要留意到 n,m 互质时才能画出一个完整的 n 角星。

操作

td = Turtle()

SetCoords[td,0,1]

TurtleRight[td, m*180*deg/n]

Repeat[n,TurtleForward[td, 2*sin(m*180*deg/n) ] ,TurtleRight[td,m*360*deg/n]]

TurtleLeft[td,m*180*deg/n]

任务五:边转边增长的轨迹

说明:在先前绘制多边形时,每次前进的长度都是个定值,但如果每次的移动距离 d 都会增长,就会绘制出如上不断外扩的图形。为了达到边长增长的效果,利用 赋值 SetValues[d,d+0.02] 达到 d 每次增长为 0.2 的效果。并且建立滑动条 a 来设定转动的角度 a ,而重覆执行的次数为 k 。大家可尝试改变 k, a 的值,观察不同参数下的图形的质美。

操作

te = Turtle()

d = 0.02

Repeat[k,TurtleForward[te, d] ,TurtleLeft[te,a], SetValues[d,d+0.02]]


小结回顾

本节主要体验 Geogebra 的 Turtle 功能。Geogebra 的 Turtle 功能目前比较简单,使用时不如其他程式的 Turtle 来得方便。对这个有兴趣可参考 Python 的一些 turtle 案例。大家除了上面的操作,还想到 Turtle 可绘制哪些图形。

相关链接

【GGB】https://www.geogebra.org/classic/pyd2nrgn

【Bili】https://www.bilibili.com/video/BV11v411a7Kn

【youtube】https://www.youtube.com/playlist?list=PLXH05kw-i_5L0SihjczOX1aDHGbPES_7a


S8G6 让乌龟动起来的评论 (共 条)

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