資訊內容
用scratch繪圖專題3
? ? ? 我們在
? ? ? ? ? ? ?《?用scratch繪圖專題1》里說了畫直線和多邊型,在
? ? ? ? ? ? ? ?《用scratch繪圖專題2》里說了畫雪花,今天說說用Scratch畫一棵圣誕樹吧!
? ? ? 這篇文章介紹使用分形技術繪制一棵圣誕樹的方法。分形圖是一種具有自相似特性的圖案,它的每一部分都是整體縮小后的形狀。分形圖展示了數學之美,頗有老子“道生一,一生二,二生三,三生萬物”的哲學意味。分形圖使用簡單的基本圖案構成,通常利用遞歸技術編程實現。Scratch是面向青少年的圖形化編程語言,與Python語言等高級語言相比,雖然只是個玩具,但是Scratch的遞歸是作了專門優化、簡化,反倒使得遞歸調用的效率大大提高了,特別適合用來繪制分形圖。
? ? ?下面將介紹在Scratch中使用遞歸技術繪制圣誕樹分形圖,并在其基礎上演化出幾種其他類型的分形樹。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圣誕樹效果
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??畫圣誕樹程序
? ? ? 下面對畫圣誕樹的程序腳本進行簡單講解。
? ? ? 第一步:畫樹干
? ? ? 樹干從最初的30個單位開始,每次以0.9的比率縮減。畫筆大小設定為每段樹干長度的0.2。
? ? ? 第二步:畫左側的樹枝在上面的”旋轉”模塊中,使用“右轉…度”指令設置畫筆角度,所以這里設置負值,可在樹干左側畫出樹枝。設置-120度,每次以0.55的縮減比率畫出左側的樹枝。
? ? ? 這里為了演示,將遞歸結束條件設置為“長度<5”,可以看到樹枝的脈絡。小海豚科學館提示,實際的效果是樹枝會不斷的變短變小,并在小于某個閾值時把將畫筆顏色設為綠色,就能畫出樹葉效果。變化過程如下圖所示。
? ? ? 第三步:畫右側的樹枝
? ? ? 同理,設置旋轉角度為120度,畫出右側的樹枝。為了增加變化,讓右側的樹枝與左側的樹枝錯開一下,避免左右對稱。這里以每段樹枝長度的0.2作為偏移量。
? ? ? 第四步:畫禮物
使用畫筆大小設置為5,在樹枝末梢隨機畫出彩色的圓點,給圣誕樹掛上許多禮物。
? ? ? ?這樣利用分形技術繪制出了一棵圣誕樹。為了讓樹枝有一些變化,在設置旋轉角度時,設置為從100到120之間隨機選一個數作為角度。
? ? ? 可以自行調整這個角度,讓樹枝以不同的角度畫出,或向下,右向上,最終使整棵樹具有不同的外觀。小小的聲音提示您,這就像是一棵剛買回來的“圣誕樹”,慢慢調整各個樹枝的角度,把樹冠調整到合適狀態。當然,你可以隨心所欲地調整,只要你喜歡就好。
? ? ? ? ?挑戰一下
? ? ? 這兩個模塊的腳本,自己實現吧,就是設置畫樹時的畫筆大小、顏色,以及畫禮物的畫筆大小和顏色。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
