還真有點生成式藝術的fu

更新 發佈閱讀 3 分鐘

跑程式時,畫出了漂亮的圖。下面是程式執行當中,先後擷取出來的兩張截圖。

raw-image
raw-image

這圖看著挺漂亮的,重點是,你可以看著螢幕畫面從一片空白,然後一條線一條線的不斷變化、發展,而且除非中斷程式,它可以就這麼永不停止地畫下去。不過說是這麼說,畫到最後應該看起來就會是黑黑的一塊而已,畢竟螢幕的解析度有限。

這個圖案其實是模擬兩大兩小四個物體,大的叫attractor,小的叫mover,在萬有引力的作用下,那兩個比較小的物體的運動軌跡。不過這是個簡化了的模擬,這裡的引力只發生在大物體和小物體之間,大物體和大物體、小物體和小物體之間,是沒有引力的。

會畫出這樣的圖案,完全是意料之外的事,因為變數實在太多了,從attractor和mover的數量和它們本身質量的大小,到它們所在的位置,以及萬有引力常數的大小,無不影響圖案的長相。一開始是用亂數隨便擺幾個attractor和mover,結果跑出來的圖案只能用慘不忍睹來形容,就亂糟糟的一團,活像被調皮的小貓咪蹂躪過的毛線團。

畫了老半天都畫不出至少可以看的圖案,突然想到Lorenz attractor那個像是蝴蝶展翅的漂亮圖案。「如果只用兩個attractor和兩個mover,說不定可以畫出類似的圖案。」一面想著,一面就試著畫看看。

嘿!蝴蝶展翅沒畫成,沒想到倒是出現了前面兩張截圖那樣的圖案。那個直立的桶子是其中一個mover的軌跡,而腰帶部分,則是另一個mover的軌跡。如果仔細觀察,可以發現所有的軌跡都沒有重複。所以囉,如果一直畫個不停,那個圖案最後看起來應該會是黑壓壓的一片。這也就是說,用一維的線,可以把二維的面給填滿,然後那個介於一維和二維之間的分數維度就冒出來了。碎形(fractal)很多迷人的圖案都有這種特性。

身為頂級藝術細胞缺乏者,總是非常羨慕那些能隨手畫出漂亮圖畫的人。看著自己寫的程式在螢幕上展現出事先無法預期的漂亮圖案,還真是很有成就感,也不免有些興奮地想著:「嘿!看來頂級藝術細胞缺乏者有藥醫了!」

畫那兩張圖的主程式放在 《The Nature of Code閱讀心得筆記——使用Python實作》 《The Nature of Code閱讀心得與Python實作》第2.5節Exercise 2.12中。除了主程式之外,另外還需要Mover和Attractor這兩個class,也可以在該節中找到。

要結束這篇隨筆時,又忍不住手癢,創作了另一個漂亮的圖案,這次還加了點顏色上去。

raw-image
raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
ysf的沙龍
19會員
157內容數
寫點東西自娛娛人
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
自從AI繪圖成效可以上檯面以來,各種聲浪不斷出現,在此也藉由這一張插畫說說個人主觀的看法。
Thumbnail
自從AI繪圖成效可以上檯面以來,各種聲浪不斷出現,在此也藉由這一張插畫說說個人主觀的看法。
Thumbnail
身為頂級藝術細胞缺乏者,總是非常羨慕那些能隨手畫出漂亮圖畫的人。看著自己寫的程式在螢幕上展現出事先無法預期的漂亮圖案,還真是很有成就感,也不免有些興奮地想著:「嘿!看來頂級藝術細胞缺乏者有藥醫了!」 這個圖
Thumbnail
身為頂級藝術細胞缺乏者,總是非常羨慕那些能隨手畫出漂亮圖畫的人。看著自己寫的程式在螢幕上展現出事先無法預期的漂亮圖案,還真是很有成就感,也不免有些興奮地想著:「嘿!看來頂級藝術細胞缺乏者有藥醫了!」 這個圖
Thumbnail
沒想到學習一個月的透視之後又開始要來學習「人體」了! 我目前學畫的過程中並沒有按照特定的學習路程,盡可能是當天內心想畫什麼就畫什麼,一點也不想要勉強自己學習,我是屬於那種「愈有壓力就愈不想做事」的類型,所以我不給自己壓力,「隨心所欲地畫畫、享受當下畫畫樂趣」是我目前學畫的方式,事後觀察結果我也確實有
Thumbnail
沒想到學習一個月的透視之後又開始要來學習「人體」了! 我目前學畫的過程中並沒有按照特定的學習路程,盡可能是當天內心想畫什麼就畫什麼,一點也不想要勉強自己學習,我是屬於那種「愈有壓力就愈不想做事」的類型,所以我不給自己壓力,「隨心所欲地畫畫、享受當下畫畫樂趣」是我目前學畫的方式,事後觀察結果我也確實有
Thumbnail
2023.04.06參加邱奕霖 老師讀書會記錄心得, 今天畫的是比較右腦的書, 上一季介紹讀書會邏輯性的書之後, 這一季主要是在圖像繪畫的部份。 很適合很喜歡畫畫的人,一起來學習畫畫。 接下來進入今天的主題 在你身上施加「不會畫圖」的詛咒的人是誰? 愛薇絲認為可能是你的......
Thumbnail
2023.04.06參加邱奕霖 老師讀書會記錄心得, 今天畫的是比較右腦的書, 上一季介紹讀書會邏輯性的書之後, 這一季主要是在圖像繪畫的部份。 很適合很喜歡畫畫的人,一起來學習畫畫。 接下來進入今天的主題 在你身上施加「不會畫圖」的詛咒的人是誰? 愛薇絲認為可能是你的......
Thumbnail
我畫著這個從容不迫的「太極」,我訴自己不能急躁,要從容、要將外在的匆忙與內在的平衡達到和諧一致。太極本身的結構是由數個圓所組合而成的,因此是作為以拉「圓型工具」很好的繪製與練習對象。同時,有些肉眼直觀並非圓的圖形,也可以利用圓型工具製作出來,然後依照自己的需求變換成其他的東西。
Thumbnail
我畫著這個從容不迫的「太極」,我訴自己不能急躁,要從容、要將外在的匆忙與內在的平衡達到和諧一致。太極本身的結構是由數個圓所組合而成的,因此是作為以拉「圓型工具」很好的繪製與練習對象。同時,有些肉眼直觀並非圓的圖形,也可以利用圓型工具製作出來,然後依照自己的需求變換成其他的東西。
Thumbnail
今天要來跟各位介紹的,是將生命之花結合了線條畫,所繪製成的創作~線條畫由點線面等基本元素構成,並加入種種創意,使畫面顯現出自身的風采,一切都是自然而然的創造。讓這顆生命種子,綻放出屬於它的美好!
Thumbnail
今天要來跟各位介紹的,是將生命之花結合了線條畫,所繪製成的創作~線條畫由點線面等基本元素構成,並加入種種創意,使畫面顯現出自身的風采,一切都是自然而然的創造。讓這顆生命種子,綻放出屬於它的美好!
Thumbnail
忘記插畫家是誰了,但他創造出的插畫 不僅只是美觀,更多的是畫中帶來的寓意 ~圖片取自網路,如有侵權請告知~ 如果人類能操控星星、光、雨等自然現象 甚至量化它,固化它 那真是有趣的產生啊!
Thumbnail
忘記插畫家是誰了,但他創造出的插畫 不僅只是美觀,更多的是畫中帶來的寓意 ~圖片取自網路,如有侵權請告知~ 如果人類能操控星星、光、雨等自然現象 甚至量化它,固化它 那真是有趣的產生啊!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News