分類: 有趣

GNU XaoS:即時的碎形繪製軟體(An Interactive Fractal Zoomer)

GNU XaoS 是一個即時性的碎形(fractal,關於碎形可以參考 Wiki 的說明)繪製軟體,可以藉由滑鼠操控來觀察圖形中任何的部位,當使用滑鼠放大時,可以發現其圖案在更細微的地方會不斷地重複,這種圖形就是碎形。

XaoS 是開放原始碼的免費軟體,它的執行速度真的很快,放大縮小也非常流暢,若要寫類似軟體的人,可以好好研究他的程式碼。


這個軟體同時支援 Windows 、Mac OS 與 Linux 等平台,若想要使用可以直接由其官方網站上下載。

如果是 Windows 平台,可以從 SourceForge 下載自動安裝檔;而如果是在 Ubuntu Linux 下,可用 apt 安裝:

apt-get install xaos

XaoS 執行起來就像這樣:

視窗中所畫得圖形就是碎形,使用者可以用滑鼠來控制,左鍵放大、右鍵縮小、中鍵平移。另外,將滑鼠移到視窗的上方就會出現選單,這個軟體提供很多選項,有興趣的人可以自己玩玩看。

除了預設的圖形外,使用者可以更改 Formula 來畫出不同的圖形:

使用者也可以編寫指令稿(script),交給 XaoS 畫成動畫,這裡示範指令搞得使用方式。XaoS 的指令稿是一種特別的 xaf 格式:

(initstate)
(defaultpalette 0)
(formula 'mandel)
(maxiter 1100)
(view -0.75 0 2.5 2.5)
(morphview -1.5961981917434695986 1.4487808847382706573E-17 5.955522533462875856E-16 5.9413948400953091322E-16)
(usleep 50000000)
(morphview -0.75 0 2.5 2.5)
(usleep 50000000)

裡面就是寫一些可以控制 XaoS 的指令,將這些指令儲存在一個 xaf 檔案中(如 script.xaf),再使用 XaoS 提供的指令功能將其繪製成圖檔:

xaos -render script.xaf -basename anim

或是開啟 XaoS 後,從 Misc 選單中選擇 Render animation,再設定要讀取得指令稿與輸出的圖檔位置:

按下 OK 後,XaoS 就會幫你畫成一系列的圖檔,然後自己再透過 ffmpeg 將畫出的圖檔轉為影片檔就大功告成了:

ffmpeg -i anim%05d.png -qscale 1 movie.mp4

這是製作好的影片:

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago