當前位置: 首頁 > 創(chuàng)客利器 > 【編程軟件】Processing:讓編程成為一種藝術(謝作如)

【編程軟件】Processing:讓編程成為一種藝術(謝作如)

編輯:sophie2014-02-01 瀏覽次數:1657


1.什么是Processing

在很多人的眼里,編程是理工男的專利,是深不可測又枯燥無味的代碼輸入過程。但是,算法和程序設計技術的先驅——唐納德?克努特(1974年度的圖靈獎者)卻不這么認為。他說,程序設計既是一門科學,也是一門藝術,二者可以彼此很好地互相補充。
Processing是一款專為設計師和藝術家使用的編程語言,由美國麻省理工學院媒體實驗室美學與運算小組( Aesthetics Computation Group )的Casey Reas與Ben Fry創(chuàng)立的。Processing的出現(xiàn),被視為藝術設計創(chuàng)作的一場革命。利用Processing,藝術家可以將抽象的數據呈現(xiàn)為生動的視覺形象。它不僅可以生成唯美的圖形,還能編寫出功能強大的互動藝術作品。
Processing軟件的官方網站:http://www.processing.org/。最新的Processing為2.0版,軟件下載地址為:http://www.processing.org/download/。

Processing:讓編程成為一種藝術
圖1 Processing網站


2.Processing的特色


1)用數字來設計。
“用數字來設計”(Design By Numbers),是Processing獨創(chuàng)的程序設計方法。它的思想是簡單地寫一行代碼,就會在屏幕上生成一個圖形,再增加一些代碼,圖形就能根據鼠標的動作發(fā)生變化。這些代碼稱之為草稿(Sketch)。Processing的設計者認為,草稿化(Sketching)是一種思維方式,有趣而便捷,可以讓人在短時間內探索出很多想法?!安莞濉币辉~的強調,讓使用者體會在計算機屏幕上畫圖,就如同在圖形紙上作畫一樣,如圖2所示。
Processing:讓編程成為一種藝術Processing:讓編程成為一種藝術

圖2 從草稿到圖形


Processing可以畫出實現(xiàn)夢幻般的視覺展示效果。Processing資源網站如http://www.openprocessing.org/http://wiki.processing.org/,提供了大量美輪美奐的畫面。當然,這些畫面都是用Processing畫出來的,如圖3所示。


Processing:讓編程成為一種藝術

圖3 Processing藝術品
2)代碼簡潔但功能強大
Processing是Java語言的延伸,支持許多現(xiàn)有的Java語言架構,不過在語法上簡易許多,并具有許多貼心及人性化的設計。通過Processing,無需太高深的編程技術,便可創(chuàng)作出漂亮的圖形以及媒體交互作品。如圖2所示,僅僅幾行代碼,就能制作出跟隨鼠標畫圓的互動作品來。
Processing支持3D圖形,它有P3D和OpenGL兩種渲染模式。Processing默認運行在2D模式,使用3D模式需要在size()函數中的第3個參數指定渲染模式,形如size(w, h, P3D)或size(w, h, OPENGL)。其中,P3D是Processing內置的,而OpenGL則以庫的形式存在。
Processing采用“庫”的形式,實現(xiàn)功能方面的拓展。除了在Processing自己的核心庫外,還有上百個非官方的庫在Processing網站上。這些庫拓展了Processing在音頻、視頻、網絡和串口等方面的功能,甚至進入了計算機視覺處理、虛擬現(xiàn)實和電子裝配(Fabrication)等領域。利用這些庫,Processing能夠任意讀寫很多種類的信息。
3)與物理世界的互動
Arduino是一個風靡世界的開源電子原型平臺。它和Processing是姐妹項目,擁有共同的編程環(huán)境和類似的語法。Processing的范例中提供了一些和Arduino通訊的互動作品。Processing可以讀取Arduino的傳感器數據,然后把這些數據呈現(xiàn)在屏幕上。這種通信是相互的,你也可以用Processing程序作為操作界面,控制電機、揚聲器、燈光和相機等設備。當然,其他支持串行通訊的設備也都可以和Processing互動。


Processing還有更多的優(yōu)點。比如,其支持安卓系統(tǒng),同樣的代碼可以輸出不同格式的文件,在不同設備和環(huán)境中使用。并且,因為開源而擁有大量資源,也是Processing最重要的優(yōu)勢之一。


3.Processing典型范例


將不可見的數據可視化,是Processing的優(yōu)勢之一。下面一段代碼雖然很簡潔,卻可以把一首MP3的聲音進行了可視化。


import ddf.minim.*;
AudioPlayer player;
Minim minim;
void setup() {
size(1024, 500);
smooth();
minim=new Minim(this);
player=minim.loadFile("../2002s.mp3", 1024);
player.play();
}
void draw() {
background(0);
stroke(255);
for (int i=0;i
strokeWeight(abs(player.left.get(i)*10));
rect(i*20, 75+player.left.get(i)*10, 1, 75+player.left.get(i)*250);
rect(i*20+10, 250+player.right.get(i)*10, 1, 75+player.right.get(i)*250);
}
}





代碼呈現(xiàn)出來的效果如下圖,白色的線條隨著音樂的節(jié)奏律動,如霓虹燈,如豎琴般,充滿變化。只要把其中一條語句:
player=minim.loadFile("../2002s.mp3", 1024);
修改為:player=minim.getLineIn(Minim.STEREO, 1024);
你就可以發(fā)現(xiàn),白色線條隨著你說話、唱歌的聲音而發(fā)生變化了,神奇吧?

Processing:讓編程成為一種藝術

圖4 聲音的視覺化


4.Processing的適合對象


因為涉及到代碼編寫,所以Processing不太建議在小學階段開設。其定位應該是中學以上的學生學習。但是,少數已經具備Scratch程序基礎的小學高年級學生,完全可以一試。因為,僅僅二維繪畫方面,Processing比LOGO語言來說,不僅更加簡單,而且更加形象、有趣。
在Processing的教學中,曾經發(fā)生過這樣的趣事:一位藝術類院校教“互動編程”的老師,總是埋怨自己的學生編程能力差,寫不出稍微復雜點的程序,而羨慕另一位在理工類院校教學的老師。但在理工類院校教學的老師卻也很苦惱,因為他的學生沒有藝術想象力,程序展現(xiàn)出來的畫面一點也沒有藝術感覺??梢奝rocessing就是一門融技術和藝術為一體的編程語言,尤其適合在藝術和技術兩個領域都有濃厚興趣的愛好者使用。


5.如何開發(fā)Processing課程


相對于Scratch和VB來說,Processing沒有圖形化的編程界面和所見即所得的程序設計功能。與傳統(tǒng)的程序設計教學不同,Processing的教學要從圖形和交互開始,而不是從數據結構和文本控制臺的輸出開始。所以,傳統(tǒng)的編程類課程設計思路對Processing來說,并不是很適合。開發(fā)Processing要尤其注意以下三點:
1)切忌使用信息學奧賽方面的趣味試題,作為課程的編程范例。因為Processing的設計理念是用代碼畫圖,而不是解答數學題或者實現(xiàn)某些經典算法。
2)切忌使用語法教學形式,試圖把Processing的功能逐一介紹。學習Processing應該從交互圖形設計出發(fā),根據設計的需求,引入必要的功能。學習者沒有必要把所有的函數、庫的功能都研究一遍。
3)從模仿到創(chuàng)新是一條可行的學習技巧。模仿的對象除了一些經典范例外,還可以是現(xiàn)實中的圖形,嘗試用多種方式去實現(xiàn),建立用代碼畫畫的思想。


合理使用Processing自身提供的范例,開發(fā)Processing課程并不是很困難的一件事。Processing課程的設計思路可以參照這樣的線索:





圖5 Processing課程開發(fā)思路


由于文化和語言的差異,國內研究Processing的人并不多。且不說在中小學,目前已經開設Processing課程的高校也寥寥無幾。但是,在創(chuàng)意產業(yè)和互動媒體藝術迅速發(fā)展的中國,開展與Processing相關的課程,讓對藝術感興趣的文科生也能動手用代碼描繪自己的創(chuàng)意,無疑是非常有意義的一件事。正如《愛上Processing》一書的翻譯者陳思明所說:Processing是一把激發(fā)藝術靈感的鑰匙,你可以輕易地在計算機屏幕中展現(xiàn)心中的藝術場景,感受更多靈感的涌現(xiàn),在顏色與線條的海洋中漫步。


參考文獻
[1]Casey Reas & Ben Fry(2012).愛上Processing(Getting Started with Processing).北京:人民郵電出版社.
[2]譚亮(2012). Processing互動編程藝術.北京:電子工業(yè)出版社.

  • 用戶評價

匿名用戶
咨詢內容:
寫得好。如果能將“Processing典型范例”與Arduino的通訊語句寫出來就好了。
總計 1 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
用戶名: 匿名用戶
E-mail:
評價等級:
評論內容:
驗證碼:
captcha

Hi,大家好,我是小奧!

歡迎來到奧松機器人的世界!

需要咨詢服務請點小奧哦!

  • 銷售咨詢: 銷售咨詢
  • 銷售咨詢: 銷售咨詢
  • 技術支持: 技術支持
  • 咨詢電話:
    0451-86628691
Top