S8G6 讓烏龜動(dòng)起來
在不少程式語言中,都有支援 Turtle?套件,這個(gè)套件可讓程式新手通過一些回圈的概念來繪制有規(guī)律的基本圖形。而 在 Gegoebra 也支援一些基本的 Turtle 指令,使用 Geogebra 腳本就可讓這 烏龜動(dòng)起來。本節(jié)就用幾個(gè)入門的例子來開啟 Turtle 的第一步。

任務(wù)一:用烏龜繪制三角形

說明:要召喚烏龜需要用 Geogebra 的腳本來控制。因此。需要先增加一個(gè)按鈕,并對(duì)這按鈕增加腳本指令來控制。Geogebra 的烏龜基本指令有以下五種:
Turtle()? 召喚烏龜,
TurtleForward(turtle, 2)? ?讓烏龜前進(jìn) 2 格
TurtleBackward(turtle, 3)??? ?讓烏龜后退?3 格
TurtleRight(turtle, 60) 讓烏龜右轉(zhuǎn)?60?度
TurtleLeft(turtle, 30)???讓烏龜左轉(zhuǎn)?30?度
要讓烏龜繪制個(gè)等邊三角形,就可通過先前進(jìn)?1格、左轉(zhuǎn) 120度;前進(jìn)1格、左轉(zhuǎn) 120度;前進(jìn)1格、左轉(zhuǎn) 120度就可繪制出來。在這要注意的是旋轉(zhuǎn)角度是三角形的外角而不是內(nèi)角。
操作:
ta= Turtle()
TurtleForward[ta,1]
TurtleLeft[ta, 120 deg]
TurtleForward[ta,1]
TurtleLeft[ta, 120 deg]
TurtleForward[ta,1]
TurtleLeft[ta, 120 deg]
任務(wù)二:用烏龜繪制共邊的正多邊形

說明:上面已經(jīng)通過重復(fù)三次的前進(jìn)與旋轉(zhuǎn)來繪制正3角形。但想要繪制正n邊形,則可通過 [Repeat] 這指令,來達(dá)到重復(fù)的效果。
為了讓程式可以繪制出正 3,4,5,6,7,8 多邊形??梢酝ㄟ^建立滑動(dòng)條 n,接著將旋轉(zhuǎn)的角度設(shè)定為 360/n deg ,就可到此效果。
操作:
ta= Turtle()
Repeat[n,TurtleForward[ta,1],TurtleLeft[ta, 360/n deg]]
任務(wù)三:用烏龜繪制共點(diǎn)的n角形

說明:在前面繪制的共邊的正n邊形,隨著邊數(shù)越來越多,其圖形也會(huì)隨之變大。若想要圖形大小維持在一定的比例,這時(shí)就可利用圓內(nèi)接多邊形。這時(shí)要留意角度與長(zhǎng)度的計(jì)算。
在半徑為 1 的圓內(nèi)接正 n 多邊形,其邊長(zhǎng)為 2*sin(180 deg/n)。
在角度部分,可利用弦切角來得到一開始右轉(zhuǎn) 180*deg/n 。但為了接續(xù)后面的正多邊形,在每次繪制后,仍需要再左轉(zhuǎ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]
任務(wù)四:用烏龜繪制共點(diǎn)的n角星

說明:有了共圓的n邊形,就可繪制共圓的n角星。再繪制n角星時(shí),還要新增一個(gè)滑動(dòng)條 m 。m 為控制 n 角星連線時(shí)要間隔幾個(gè)頂點(diǎn)。當(dāng) m =1 時(shí),就是原先的正 n 邊形。上圖中,就是 n =12 , m = 5 的情況。而在 m 的選取還要留意到 n,m 互質(zhì)時(shí)才能畫出一個(gè)完整的 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]
任務(wù)五:邊轉(zhuǎn)邊增長(zhǎng)的軌跡

說明:在先前繪制多邊形時(shí),每次前進(jìn)的長(zhǎng)度都是個(gè)定值,但如果每次的移動(dòng)距離 d 都會(huì)增長(zhǎng),就會(huì)繪制出如上不斷外擴(kuò)的圖形。為了達(dá)到邊長(zhǎng)增長(zhǎng)的效果,利用 賦值 SetValues[d,d+0.02]?達(dá)到 d 每次增長(zhǎng)為 0.2 的效果。并且建立滑動(dòng)條 a 來設(shè)定轉(zhuǎn)動(dòng)的角度 a ,而重覆執(zhí)行的次數(shù)為 k 。大家可嘗試改變 k, a 的值,觀察不同參數(shù)下的圖形的質(zhì)美。
操作:
te?= Turtle()
d = 0.02
Repeat[k,TurtleForward[te,?d] ,TurtleLeft[te,a], SetValues[d,d+0.02]]
小結(jié)回顧
本節(jié)主要體驗(yàn) Geogebra 的 Turtle 功能。Geogebra 的 Turtle 功能目前比較簡(jiǎn)單,使用時(shí)不如其他程式的 Turtle 來得方便。對(duì)這個(gè)有興趣可參考?Python 的一些 turtle 案例。大家除了上面的操作,還想到 Turtle 可繪制哪些圖形。
相關(guān)鏈接
【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