迷人的fractal圖案

更新 發佈閱讀 5 分鐘

解決了Spyder和turtle之間的不合後,就來畫些漂亮迷人的fractal圖案,也順便練習一下recursive function的寫法。

fractal最重要的性質就是self similarity,也就是不管是近看、遠看、縮小來看、放大來看、切一部份來看,它都是一個樣兒。所以recursive function是最適合用來畫fractal圖案的了。當然啦,最適合不代表唯一,不用recursion的方式來寫,還是可以畫得出來,有許多程式語言並不支援recursion,一樣可以做得到。

第一個畫的是Sierpinski triangle。畫法是把一個三角形中間挖個洞,然後再把剩下的所有三角形中間挖個洞,就這樣一直重複到滿意為止。

vocus|新世代的創作平台









接下來畫的是Barnsley fern。這個比較簡單,就只是同樣的數學式子不斷迭代而已,不需用到recursion。雖然就只是幾條數學式子而已,但透過不斷迭代產生的結果,卻可以畫出以假亂真的蕨類圖案,這實在是太神奇了!

vocus|新世代的創作平台









再來是fractal tree。設定好樹枝的長度和分叉的角度,以及分叉後的長度比例,就可以畫出一棵醜醜的雖然不像,但還是有那麼一點樣子的樹。如果讓樹枝多一點,看起來還真是有那麼些個異星植物的感覺。

vocus|新世代的創作平台




vocus|新世代的創作平台







一棵光禿禿沒有葉子的樹,看起來實在是蕭瑟寂寥,長些翠綠的葉子應該會有生氣一些。雖然Barnsley fern是蕨類,不過將就一點,就讓它長在樹上。那要怎麼個長法呢?原始的Barnsley fern是直立的,如果就那麼直接長在樹枝上,那說有多怪就有多怪,真正的樹葉可不會這麼長法。不如轉個角度,沿著樹枝的方向長。原始的Barnsley fern是從座標(0, 0)向上長的,只要繞著(0, 0)轉到想要的角度就可以了,高中數學就可以推導出需要的數學式。當然啦,網路上也查得到。

有翠綠葉子的樹,看起來就是不一樣。不過……這怎麼還是感覺怪怪的,不太對勁。

vocus|新世代的創作平台








唉呦!這樹葉怎麼都朝順時鐘方向彎?難怪看起來怪怪的。讓在左半邊的葉子逆時鐘方向長好了,這樣看起來應該會自然一些。說是這麼說,不過要怎麼讓葉子逆時鐘方向長呢?既然現在葉子是沿著樹枝的方向長,那以樹枝的延長線為軸,把葉子翻面,應該就能達到目的了。用比較精確的數學語言來說,就是要找出葉子在樹枝延長線上的鏡像。這個也是高中數學就能辦到,網路上當然也找得到推導的方式。不過網路上找到的式子,是針對一般化的情況推導出來的,也就是那條軸線並不一定會通過原點,所以式子還真是有點複雜。在網頁上看數學式子簡直就是虐待人,除非那個網站有提供漂亮的數學排版功能。看到那一大串沒有數學排版功能寫出來的數學式子,把心一橫,乾脆自己推導好了。自己推導的好處是,可以針對需要的特殊狀況先簡化,而在推導的過程中,也可以一併想想要把式子寫成怎樣的形式,在最後寫程式的時候,可以寫得比較簡潔易懂又有效率。

數學式子推導出來了,雖然還是一串,但已經簡化了不少,而且相同的計算式,也都用同一個變數來表示,這樣寫程式的時候輕鬆多了。就在要動手寫程式的時候,突然想到:啊!幹嘛推導得這麼辛苦?先找出原始的Barnsley fern在y軸的鏡像,然後轉到需要的角度就可以了啊!要找出一個點在y軸的鏡像,就只需要把x座標乘上-1,也就是正變負或負變正就可以了,而旋轉角度的問題先前就解決了。所以啊,要讓葉子逆時鐘方向長,根本就不需要額外再做什麼事就能辦到。想想也真是好玩,就只是調整一下處理問題的方式和步驟,居然就能把原本需要費九牛二虎之力才能解決的問題,不費吹灰之力地處理掉。

vocus|新世代的創作平台








現在左半邊的葉子逆時鐘方向長,看起來果然自然多了。不過俗話說:紅配綠,最美麗。有了綠綠的葉子,怎麼可以沒有紅紅的果子呢?讓每片葉子的葉柄前面長顆紅紅的果子好了。

vocus|新世代的創作平台







就這樣,一幅由毫無藝術細胞的人所創作的曠世程式畫作,宣告完成!



留言
avatar-img
ysf的沙龍
32會員
168內容數
寫點東西自娛娛人
ysf的沙龍的其他內容
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
巡著園子跟著樹也一棵棵做了如矮化內切造型的小整理動作。
Thumbnail
巡著園子跟著樹也一棵棵做了如矮化內切造型的小整理動作。
Thumbnail
今天水個文,來弄一下好久沒弄的植物
Thumbnail
今天水個文,來弄一下好久沒弄的植物
Thumbnail
身為一位工程師 隨身帶著放大鏡及鑷子也是合情合理🧐 假日空閒來分苗~
Thumbnail
身為一位工程師 隨身帶著放大鏡及鑷子也是合情合理🧐 假日空閒來分苗~
Thumbnail
參加建蓁自然環境文學營的第一天,要到外頭自由採集書寫素材。文字在我腦裡全部變成詩,只好就讓他們用詩的方式呈現吧!
Thumbnail
參加建蓁自然環境文學營的第一天,要到外頭自由採集書寫素材。文字在我腦裡全部變成詩,只好就讓他們用詩的方式呈現吧!
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
我的葉子是歐洲鳳尾蕨,它的樣子很像一位在跳芭蕾舞的女孩,非常的美麗、時尚。而且它很像「山」字,它的旁邊有波浪的形狀。它的葉片細細的,而背面的感覺非常凹凸不平,而且它的葉脈都凸凸的、粗粗的。葉片摸起來軟軟的,一拿起來它就會左右搖擺。
Thumbnail
我的葉子是歐洲鳳尾蕨,它的樣子很像一位在跳芭蕾舞的女孩,非常的美麗、時尚。而且它很像「山」字,它的旁邊有波浪的形狀。它的葉片細細的,而背面的感覺非常凹凸不平,而且它的葉脈都凸凸的、粗粗的。葉片摸起來軟軟的,一拿起來它就會左右搖擺。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
《筆記大自然》 實作#1 之前有跟台東藝術家—傳莉老師學畫,讓我對花草產生了興趣。 但自己太愛好自由, 老師建議我先很單純的畫畫, 今早嘗試書中的方法, 走出戶外, 看到什麼就畫吧! 我其實對植物是小白, 只知道簡單的桂花、酢醬草。 其他真的都不知道,
Thumbnail
《筆記大自然》 實作#1 之前有跟台東藝術家—傳莉老師學畫,讓我對花草產生了興趣。 但自己太愛好自由, 老師建議我先很單純的畫畫, 今早嘗試書中的方法, 走出戶外, 看到什麼就畫吧! 我其實對植物是小白, 只知道簡單的桂花、酢醬草。 其他真的都不知道,
Thumbnail
消失大半年的時間,會在某次回家看見又纏繞在同樣那幾棵樹上,大約都在春天時候開始糾纏那顆榕樹,葉子如拉長的愛心形,脈絡卻深刻分明,一陣風來轉了同一向如片片綠鱗。
Thumbnail
消失大半年的時間,會在某次回家看見又纏繞在同樣那幾棵樹上,大約都在春天時候開始糾纏那顆榕樹,葉子如拉長的愛心形,脈絡卻深刻分明,一陣風來轉了同一向如片片綠鱗。
Thumbnail
解決了Spyder和turtle之間的不合後,就來畫些漂亮迷人的fractal圖案,也順便練習一下recursive function的寫法。
Thumbnail
解決了Spyder和turtle之間的不合後,就來畫些漂亮迷人的fractal圖案,也順便練習一下recursive function的寫法。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News