Scratch & Math: 隱藏在花朶裡的祕密(一)

Peter Wei
8 min readJun 4, 2017

--

五彩繽紛的花朶是大自然的彩妝師,當我們佇足欣賞這些美麗的花朶時,是否看到隱藏在花朶裡大自然的奧祕?在本章中我們將藉由觀察向日葵的種子和花瓣來瞭解什麼是黃金角度和黃金比例。當我們掌握了隱藏在向日葵花朶裡的祕密,只要用簡單的Scratch指令就可以畫出美麗的向日葵花朶。

數學關鍵字: 黃金角度。

數學家:畢達哥拉斯。

Scratch程式:

向日葵的種子排列

當我們近距離觀賞向日葵花朶的時候,很容易感受到一種大自然裡難以言喻的規律性。

(取自維基百科Helianthus_annuus, CC BY-SA 2.5

向日葵花朶的中心部份是一個圓形的種子排列區域,細看一粒粒種子的排列順序,既不像年輪蛋糕一樣一圈接著一圈,也不是整齊的縱橫格子狀排列。種子的排列有點像是由中心向外幅射的螺旋狀,每一粒種子先是排列成由一條條的斜列線,然後這些斜列線的形狀再由同一點圓心整齊地排列成一個圓。奇妙的是這個圓形的螺旋可以看成順時針方向彎曲的斜列線排列,也可以看成逆時針方向的彎曲的斜列線排列,一點也沒有違和感。

用手畫畫看向日葵種子的排列

讓我們先仔細想想向日葵種子排列有那些重要的特徵。

從整體來看,所有的向日葵種子排列成一個圓形;「排列成圓形」是我們觀察到的第一個特徵。

在向日葵花朶中心,是由許多一粒一粒極為相像的小向日葵種子組合而成;「重覆」是我們觀察到的第二個特徵。

小向日葵種子排列成一條條的斜列線後就形成了一個螺旋形狀的圓;「旋轉」是我們觀察到的第三個特徵。

除了上面提到的三個特徵以外,還有觀察到向日葵種子排列的其他特徵嗎?可以拿出紙筆,用手畫畫看向日葵種子的排列。

向日葵種子排成的斜列線

為了進一步了解向日葵種子的排列,我們拿一支筆照著順時針方向標示出每一條斜列線,然後數一數斜列線的數目。同樣地對於逆時針方向的斜列線也可以標示出另一組斜列線,再數一數這組斜列線的數目。

(取自維基百科Fibonacci_number, CC BY 2.5

我們可以數出來上面這張圖裡向日葵花種子排列成順時針斜列線的話,總共是13條線。而以逆時針排列的方向來數,總共是21條線。

事實上在大自然裡13和21是兩個特別的數字,我們稍後會再做討論。接下來我們先來用Scratch畫出這個美麗的向日葵種子排列。

向日葵種子有一種特殊的螺旋狀排列,這種排列被稱為斜列線(parastichy),是一種像螺旋網眼狀空隙圖案的結構。

動手做6–1 用Scratch畫出向日葵種子的排列

[程式設計需求規格]

我們觀察到向日葵種子的排列有幾項主要的特色,包括「排列成圓形」、「重覆」和「旋轉」。在這個程式裡我們要用Scratch程式畫出類似的種子排列,可以想像其中最重要的關鍵就在於要使用程式中像是角色旋轉和重覆蓋章的指令。

[程式設計角色和舞台]

由範例庫任意選取一個角色造形,在這個例子裡我們選的是一隻白熊。舞台維持空白即可。

[程式設計解決方案]

[程式檢視]

Scratch 程式裡的「蓋章」指令方塊會將角色的外觀像蓋章一樣複製在舞台上。程式[白熊6–1.1]裡的迴圈重複了300次,我們可以預期舞台上會出現300個白熊的圖案。

每一次蓋章前,白熊都會被移回原點座標題(0, 0),向右旋轉一個特別的角度137.5度,然後由圓心向外移動。移動的距離由變數「向外擴大」控制,變數「向外擴大」初始值設為4,之後每呼叫一次迴圈就再增加0.5。

執行程式後舞台上出現了排列整齊的300隻白熊圖案,特別的是它們的排列非常類似向日葵花種子的排列。

為什麼是137.5度?

在動手做6–1用Scratch畫向日葵花種子的程式迴圈中,一次一次地將角色向右旋轉137.5度,並且在旋轉時逐漸向外擴大。如此一來畫出的圖案和真實向日葵花種子有很類似的排列。事實上137.5度可不是隨便選取的旋轉角度,在幾何學裡137.5度被稱為「黃金角度」。

(取自維基百科Golden_angle

我們知道一個圓的圓周是360度。在上圖中圓周被分為a和b兩部分,當b對應到的角度是137.5度時,會發現一個很特別的周長比;圓的全部周長(a+b)和a的比例,恰好等於周長a和b 的比例。我們寫成一道數學式子,

這裡的 φ 是一個希臘字母讀做phi,它是一個無理數,值大約是1.6180339887,在數學裡稱做「黃金比例」。

據數學史的記載,黃金比例在公元前六世紀被古希臘哲學家畢達哥拉斯發現。畢達哥拉斯學派認為黃金比例是一種美學的和諧比例,而被廣泛地運用於繪畫、雕塑和建築之中,例如古希臘巴特農神殿的神殿高度就是大理石柱廊的1.618倍。這樣的觀念也影響了文藝復興時期的藝術創作,黃金比例也因此被稱之為「神賜的比例」。往後人們在不同的領域像是數學、美學、自然都發現了黃金比例的作用,透過黃金比例人們對於大自然的規律也有了更深一層的體認。

每一粒向日葵種子旋轉137.5度就排列成規則的斜列線,至於為何會呈現斜列線的排列至今仍是一個未完全被理解的謎。有一種說法是一朶向日葵花裡有好幾百顆種子,而一般花朶的大小都差不多,如何能在有限的面積裡排列出最緊密最多的種子可能就是決定演化優勝劣敗的關鍵。以黃金角度旋轉的的種子排列圖形看起來相對緊密,單位面積裡可以生長的種子數目也就比較多了。

動手做6–2 畫畫看:改變種子的旋轉角度

[程式設計需求規格]

動手做6–1設定了黃金角度137.5度為旋轉的角度,畫出的圖形和向日葵花種子的排列很相像,是一種緊密的螺旋狀斜列線排列。在動手做6–2中讓我們改變旋轉角度,好比說90度、120度、180度或其他任意角度,再來觀察看看畫出來的畫形長什麼樣子。

[程式設計角色和舞台]

由範例庫任意選取一個角色造形,在這個例子裡我們選的是一隻白熊。舞台維持空白即可。

[程式設計解決方案]

[程式檢視]

程式[白熊6–2.2]利用客製方塊將旋轉蓋章的部分包裝起來,如此一來在程式[白熊6–2.1]只要傳遞變數「旋轉角度」就可以不斷變換圖形。

我們可以將程式[白熊6–2.1]中的旋轉角度指定為特別的角度。下面八張圖形分別產生於不同的旋轉角度設定,前四張圖的旋轉角度分別為30度、80度、90度和120度。圖形看起來像往外擴散的直線集合。

後面四張的旋轉角度分別為10度、75度、125度、和145度,圖形的中心附近都形成明顯的螺旋,而發散出去的線條則曲直各有不同。

旋轉角度細微的變化就可能讓繪製出的圖形有顯著的差異,設定旋轉角度由135度漸增到145度,可以看到圖形都不一樣。當旋轉角度設定為黃金角度137.5度時,圖形看起來最為緊密。

延伸閱讀:

Scratch & Math: 天花板上的蜘蛛(一) Scratch & Math: 天花板上的蜘蛛(二)

Scratch & Math: 直線裡的宇宙觀(一) Scratch & Math: 直線裡的宇宙觀(二)

Scratch & Math: 不能說的祕密(一) Scratch & Math: 不能說的祕密(二)

Scratch & Math: 無理的道理(一) Scratch & Math: 無理的道理(二) Scratch & Math: 無理的道理(三)

Scratch & Math: 歡樂派(一) Scratch & Math: 歡樂派(二)

Scratch & Math: 歡樂派(三) Scratch & Math: 歡樂派(四)

Scratch & Math: 隱藏在花朶裡的祕密(一) Scratch & Math: 隱藏在花朶裡的祕密(二)

--

--

Peter Wei

DIY, Scratch, Math, Essay, Book, Travel, Movie, Music