GNU XaoS 是一個即時性的碎形(fractal,關於碎形可以參考 Wiki 的說明)繪製軟體,可以藉由滑鼠操控來觀察圖形中任何的部位,當使用滑鼠放大時,可以發現其圖案在更細微的地方會不斷地重複,這種圖形就是碎形。
XaoS 是開放原始碼的免費軟體,它的執行速度真的很快,放大縮小也非常流暢,若要寫類似軟體的人,可以好好研究他的程式碼。
如果是 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
這是製作好的影片: