陳新龍
圣誕節源自古羅馬人迎接新年的農神節,原本是宗教節日。19世紀后由于圣誕卡的流行、圣誕老人的出現,使圣誕節開始漸漸流行起來。圣誕慶祝習俗在北歐流行后,結合著北半球冬季的圣誕裝飾也出現了。發展至19世紀中葉,整個歐洲、美洲開始過起了圣誕節,并衍生出了相應的圣誕文化。
今天我們通過Scratch繪制一棵圣誕樹和大家一起歡度圣誕。
首先我們需要了解“分形理論”,它是現代數學的一個分支,其本質是一種新的世界觀和方法論。分形理論起源于一個問題“一個國家海岸線有多長?”海岸線作為不規則的曲線,計算其真實長度的難度非常大。但是在對比航拍圖片時,發現海岸線的局部形態和整體形態是自相似的。自相似便是分形理論的基點,部分形體與整體形體之間的自相似定義為分形。分形作為一種方法,在圖形學領域主要是利用遞歸、迭代等技術來實現某一部分的分形構造。在今天的圣誕樹實驗中,我們會用到分形的繪制方法。
樹的組成大致分成四個部分,從下往上分別是樹根、樹干、樹枝、樹葉。樹根是對樹木起到支撐作用,利用畫筆工具我們首先確定好落筆的位置以及畫筆的粗細長度,并且設置一個自制積木用來繪制我們的圣誕樹(自制積木時添加一個輸入選項用來控制長度)。先嘗試把樹干部分繪制出來,首先面向0度方向移動50步,然后向左旋轉120度,面向左下角移動10步,然后朝著反方向移動10步,目前的方向依舊是左下角,我們需要向右旋轉240度將方向調整到右下角,面向著右下角移動10步,然后朝著反方向移動10步回到初始點位置,依照這個順序通過遞歸迭代的方法完成樹干的繪制(圖1)。

完成基本的框架后我們需要給圣誕樹加上屬于它自己的枝干,這里就用到分形的思想。我們在每個分叉路口都需要繪制出分支。通過遞歸迭代的方法(修改紅色方框內的代碼內容)讓圣誕樹左右兩邊的分支自行繪制生長,確定一個繪制的范圍(當長度大于10的時候,樹枝部分依次遞減,直至長度小于10)。繪制完成后不要忘記讓方向回到最初的位置繼續進行迭代繪制(圖2)。

除了繪制圣誕樹之外我們還可以加以裝飾,添加上好看的漸變背景顏色,在圣誕樹上添加上圣誕禮物:平安果和鈴鐺,通過簡單的代碼讓這些裝飾品左右搖晃運動起來。別忘記加上一首《鈴兒響叮當》渲染出圣誕節的氛圍感。小陳老師也祝大家圣誕節快樂,希望大家都能收到心儀的圣誕禮物。