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

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

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


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

apt-get install xaos

XaoS 執行起來就像這樣:

fr1

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

fr2

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

fr3

使用者也可以編寫指令稿(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,再設定要讀取得指令稿與輸出的圖檔位置:

fr5

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

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

這是製作好的影片: