科學 · 編程

Mandelbrot


cMandelbrot
一條簡單的方程,卻能繪畫出如此豐富奇幻的圖案。有甚麼比數學更能展現大自然的美呢?

學習編程應該從簡單的程式開始,但簡單的程式卻不一定要像 Hello World 一樣陽春。上圖的 Mandelbrot set 來自一個數十行的 Java 程式,當中用到的都是很基本的 Java 句法,用來作為編程課的第一個引子,當能引起學生的學習興趣。

Mandelbrot 是我最喜歡的分形 (fractal),以前學習數值方法 (numerical method) 時,便曾經用 C++ 寫了一個 Mandelbrot 程式。用 C++ 繪圖是件痛苦的事(要呼叫額外的程式庫),幸好 Linux 上有個超級棒的 gnuplot 繪圖軟件,於是我把各點座標輸出到一個文字檔,再匯入 gnuplot 讓其畫出來,缺點是只能畫黑色的 Mandelbrot。今次趁放假玩玩 Java,從舊程式中取出部份源碼,嘗試用 Java applet 直接畫出 Mandelbrot,還可以加入彩色的效果。一方面當作假期中的消遣,另一方面也想重拾編程的感覺,順便鍛鍊一下久未運作的頭腦。

上圖只是一個擷取畫面,如欲觀看真正的 Java applet 及其相關代碼,請參看 Fractals in Java AppletFractal Explorer

附加參考:Wikipedia

One thought on “Mandelbrot

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s