2007-05-20
DBN 結合 Logo 觀念以實現碎形
文章論述/數位藝術

  「數位藝術教育暨創作推廣計畫」推薦DBN(Design By Numbers)這套簡易軟體,作為進入數位藝術的創作工具。它僅僅二十個指令,即使是對程式編寫望而生畏的藝術家,也容易學習、運用。它刺激使用者發揮創意,回歸到基礎的點線面架構去創作,如果我們認為DBN只能做單調的構圖,那就低估了它的潛力。DBN不僅涉及到基礎設計、互動觀念,它也能夠實現碎形、細胞自動機等等新穎的圖案。例如以上四個圖例,便是DBN運用簡單的規則所繪製出的碎形,其中還可以做各種變化。

  碎形是什麼?自然界隨處可見的形態,包括雪花晶體、樹幹枝椏、血管分支、海岸沿線、雲彩邊緣以及天空的閃電,這些曲折、細膩的圖案都是碎形,它們的特徵是結構上相似的重複性。碎形的概念,可以幫助科學家、藝術家使用簡短的電腦程式,模擬出大自然多元的樣貌。繪製碎形的方法主要有三種, 例如第一種 L-Systems 是用(符號定義)線段關係,衍生出如同樹木般生長的形態。雖然 DBN 無法實現 L-Systems,但是 DBN 可以結合 Logo 語言的觀念與指令,做出類似 L-Systems 的繪圖效果。


  Logo 語言的繪圖主角是一隻小海龜,初學者可以不需要任何程式設計的知識,而直接向小海龜發送移動的命令,小海龜移動的軌跡便是我們要的圖形。Logo 語言其實比 DBN 還容易理解,所以在台灣過去有不少國小、國中老師是用 Logo 語言來教導學生的幾何概念。DBN 建立在座標系,基本指令是畫點(Set)、畫線(Line)、畫面(field)等。然而 Logo 的作圖可以不採用坐標方式,它運用相對位置的移動來製圖,基本指令是前進(Forward)、後退(Backward)、左轉(Left)、右轉(Right)。舉個實際的例子,如果我們用 DBN 與 Logo 設計正方形,程式碼分別如下:


  我們會發現 DBN 製圖與 Logo 製圖是兩種截然不同的思考法。DBN較為抽象,而 Logo 具有較強的形象感(或建構性)。Logo 被認為是兒童學習幾何關係,與程式編寫最好的一種語言,它也是切入碎形繪圖最簡單的語言。我曾經在 Visual Basic 與 C++ 裡面建立過 Logo 語言環境,這次配合 DBN 的進階課程,我在 DBN 上建立 Logo 函式庫,讓 DBN 也可以運用 Logo 的基本指令。指令名稱包括:SetPos(定位)、SetHead(定角)、Forward、Backward、Left、Right、PenUp(提筆)、PenDown(下筆)。當
DBN 結合 Logo 指令,用 DBN 設計正方形,可以改成如範例一:


  首先,要把檔案 logo(wu).dbn 複製到DBN軟體的根目錄。範例一的正方形,只要些許巧思,例如每轉十度然後畫個正方形,重複36次,便出現範例二的圖案。甚至我們想繪製鸚鵡螺的圖形,也是輕而易舉,只要改變一行,如同範例三即可。是否體會到 DBN 結合 Logo 後的威力?這種方式取兩者之優點,宛如同時實現了左腦思考與右腦創意。簡單的變化,可以衍生出意想不到的圖案。DBN 作碎形樹,也不困難,程式碼如下:


  當國立台灣美術館推廣 DBN 的數位藝術教學計畫時,曾經有國中小學老師反映,為何不使用 Logo 語言作為創作工具。原因一方面在於,DBN 是專為數位藝術所設計的簡易軟體,另一方面,學習 DBN 可以在將來銜接更進階的軟體藝術工具:Processing。如果 DBN 能夠結合 Logo 語言,自然是最好不過,不但引入了另一種繪圖的方式,還可以去設計碎形。對於國中小學老師來說,他們更能夠直接使用 DBN 來對學生教導 Logo 語言。對於數位藝術教育,以及數學幾何教學而言,這種結合是非常有價值的


延伸閱讀:
〈Logo 小海龜實現碎形繪圖程序〉
http://blog.xuite.net/sinner66/blog/9952555
〈碎形幾何內涵與 Logo 程式繪圖〉
http://blog.xuite.net/sinner66/blog/10141991