平面密鋪的浪漫(三)

平面密鋪的浪漫(三)

與上期程式碼相似,今期進一步繪畫正六邊形的平面密鋪。程式設計概念是先定義正六邊形座標參數及函數,之後便使用巢狀結構,並呼喚這個函數進行繪畫。

為了讓同學們先較易理解和有更多機會嘗試,今期我們先以黑色線條繪畫平面密鋪的圖像,這樣的點是可以簡化程式碼。同時,同學們若有興趣進一步思考,也就可以嘗試發揮其他創意。

完成後的六邊形平面圖密鋪。

完成後的六邊形平面圖密鋪。

構思六邊形密鋪

先來構思一下原理,正六邊形的平面密鋪繪製中,先要計算每兩個連續的六角形,其座標參數的水平和垂直距離移動了多少。操作上,先繪畫出第一個正六形,接著於一邊再接連繪畫,如此類似,因此在設計函數時,也運用相同概念。

圖中的 a 為正六邊形的邊長, P 和 Q 分別為兩個正六邊形的座標參數。我們只要運用基本的三角比理論,便可以計算出水平距離 PN 和垂直距離 NQ 的距離,分別為 1.5a 及 a sin60° 。

圖中的 a 為正六邊形的邊長, P 和 Q 分別為兩個正六邊形的座標參數。我們只要運用基本的三角比理論,便可以計算出水平距離 PN 和垂直距離 NQ 的距離,分別為 1.5a 及 a sin60° 。

稍後的 downHex 函數,是使用 for 循環 6 次,每次向前行距離 a 並向右轉 60 度,就可接連繪畫六邊形。

稍後的 downHex 函數,是使用 for 循環 6 次,每次向前行距離 a 並向右轉 60 度,就可接連繪畫六邊形。

製作六邊形平面密鋪

有了具體的概念,就與上期一樣,於 Trinket 網站上輸入程式碼,就可以繪畫出正六邊形的平面密鋪圖。

Trinket: https://trinket.io

程式碼二:正六邊形平面密鋪

程式碼二:正六邊形平面密鋪

程式碼二的說明

程式碼二的說明

以上程式完成了單邊的六邊形平面物鋪。

以上程式完成了單邊的六邊形平面物鋪。

如讀者有興趣的話,可繼續修改上述程式,便能夠繪畫出更複雜和有趣的圖案。使用以上的程式碼,我們就可以繪畫一些簡單的平面密鋪圖案,相信讀者看到圖像一筆一筆的建立起來,對 Python 程式定會有更深的認識。

下期我們會繼續運用網站 Trinket ,並使用方塊編程器 Scratch ,即運用圖像方式編寫程式繪製平面密鋪,此方法十分適合初學者學習。

下期待續……