国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Processing:讓編程成為一種藝術(shù)

2013-04-29 04:45:04謝作如
中國信息技術(shù)教育 2013年9期
關(guān)鍵詞:草稿程序設(shè)計代碼

謝作如

● 什么是Processing

在很多人的眼里,編程是理工男的專利,是深不可測又枯燥無味的代碼輸入過程。但是,算法和程序設(shè)計技術(shù)的先驅(qū)——唐納德·克努特(1974年度的圖靈獎獲得者)卻不這么認為。他說,程序設(shè)計既是一門科學(xué),也是一門藝術(shù),二者可以彼此很好地互相補充。

Processing是一款專為設(shè)計師和藝術(shù)家使用的編程語言,由美國麻省理工學(xué)院媒體實驗室美學(xué)與運算小組(Aesthetics Computation Group )的Casey Reas與Ben Fry創(chuàng)立。Processing的出現(xiàn),被視為藝術(shù)設(shè)計創(chuàng)作的一場革命。利用Processing,藝術(shù)家可以將抽象的數(shù)據(jù)呈現(xiàn)為生動的視覺形象。它不僅可以生成唯美的圖形,還能編寫出功能強大的互動藝術(shù)作品。

Processing軟件的官方網(wǎng)站:http://www.processing.org/(如圖1)。最新的Processing為2.0版,軟件下載地址為:http://www.processing.org/download/。

圖1

● Processing的特色

1.用數(shù)字來設(shè)計

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

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

2.代碼簡潔但功能強大

Processing是Java語言的延伸,支持許多現(xiàn)有的Java語言架構(gòu),不過在語法上簡易了許多,并具有許多貼心及人性化的設(shè)計。通過Processing,無需太高深的編程技術(shù),便可創(chuàng)作出漂亮的圖形以及媒體交互作品。如下頁圖3、下頁圖4所示,僅僅幾行代碼,就能制作出跟隨鼠標畫圓的互動作品來。

Processing支持3D圖形,它有P3D和OpenGL兩種渲染模式。Processing默認以2D模式運行,使用3D模式需要在size()函數(shù)中的第三個參數(shù)指定渲染模式,形如size(w, h, P3D)或size(w, h, OPENGL)。其中,P3D是Processing內(nèi)置的,而OpenGL則以庫的形式存在。

Processing采用“庫”的形式,實現(xiàn)功能方面的拓展。除了Processing自己的核心庫外,還有上百個非官方的庫在Processing網(wǎng)站上。這些庫拓展了Processing在音頻、視頻、網(wǎng)絡(luò)和串口等方面的功能,甚至進入了計算機視覺處理、虛擬現(xiàn)實和電子裝配(Fabrication)等領(lǐng)域。利用這些庫,Processing能夠任意讀寫很多種類的信息。

3.與物理世界的互動

Arduino是一個風(fēng)靡世界的開源電子原型平臺。它和Processing是姐妹項目,擁有共同的編程環(huán)境和類似的語法。Processing的范例中提供了一些和Arduino通訊的互動作品。Processing可以讀取Arduino的傳感器數(shù)據(jù),然后把這些數(shù)據(jù)呈現(xiàn)在屏幕上。這種通信是相互的,也可以用Processing程序作為操作界面,控制電機、揚聲器、燈光和相機等設(shè)備。當然,其他支持串行通訊的設(shè)備也都可以和Processing互動。

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

● Processing典型范例

將不可見的數(shù)據(jù)可視化,是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)出來的效果如圖5,白色的線條隨著音樂的節(jié)奏律動,如霓虹燈,如豎琴,充滿變化。只要把其中一條語句:player=minim.loadFile("../2002s.mp3", 1024);修改為:player=minim.getLineIn(Minim.STEREO, 1024);就可以發(fā)現(xiàn),白色線條隨著說話、唱歌的聲音而發(fā)生變化了,很神奇。

● Processing的適合對象

因為涉及代碼編寫,所以筆者不太建議在小學(xué)階段開設(shè)Processing。其定位應(yīng)該是中學(xué)以上的學(xué)生學(xué)習(xí)。但是,少數(shù)已經(jīng)具備Scratch程序基礎(chǔ)的小學(xué)高年級學(xué)生,完全可以一試。因為,僅僅二維繪畫方面,Processing比LOGO語言,不僅簡單,而且更加形象、有趣。

在Processing的教學(xué)中,曾經(jīng)發(fā)生過這樣的趣事:一位藝術(shù)類院校教“互動編程”的教師,總是埋怨自己的學(xué)生編程能力差,寫不出稍微復(fù)雜點的程序,而羨慕另一位在理工類院校教學(xué)的教師。但在理工類院校教學(xué)的教師也很苦惱,因為他的學(xué)生沒有藝術(shù)想象力,程序展現(xiàn)出來的畫面一點也沒有藝術(shù)感覺??梢奝rocessing就是一門融技術(shù)和藝術(shù)為一體的編程語言,尤其適合在藝術(shù)和技術(shù)兩個領(lǐng)域都有濃厚興趣的愛好者使用。

● 如何開發(fā)Processing課程

相對于Scratch和VB來說,Processing沒有圖形化的編程界面和所見即所得的程序設(shè)計功能。與傳統(tǒng)的程序設(shè)計教學(xué)不同,Processing的教學(xué)要從圖形和交互開始,而不是從數(shù)據(jù)結(jié)構(gòu)和文本控制臺的輸出開始。所以,傳統(tǒng)的編程類課程設(shè)計思路對Processing來說,并不是很適合。

開發(fā)Processing要尤其注意以下三點:①切忌使用信息學(xué)奧賽方面的趣味試題作為課程的編程范例。因為Processing的設(shè)計理念是用代碼畫圖,而不是解答數(shù)學(xué)題或者實現(xiàn)某些經(jīng)典算法。②切忌使用語法教學(xué)形式,試圖逐一介紹Processing的功能。學(xué)習(xí)Processing應(yīng)該從交互圖形設(shè)計出發(fā),根據(jù)設(shè)計的需求,引入必要的功能。學(xué)習(xí)者沒有必要把所有的函數(shù)、庫的功能都研究一遍。③從模仿到創(chuàng)新是一條可行的學(xué)習(xí)技巧。模仿的對象除了一些經(jīng)典范例外,還可以是現(xiàn)實中的圖形,嘗試用多種方式去實現(xiàn),建立用代碼畫畫的思想。

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

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

猜你喜歡
草稿程序設(shè)計代碼
The Inventor of Basketball
生命無草稿
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
計算機教育(2020年5期)2020-07-24 08:52:56
從細節(jié)入手,談PLC程序設(shè)計技巧
電子制作(2019年9期)2019-05-30 09:42:04
跟蹤導(dǎo)練(四)3
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
不能多寫一個字
讀者(2018年4期)2018-02-02 18:30:14
象山县| 怀远县| 油尖旺区| 东源县| 扬州市| 平谷区| 安陆市| 景东| 红安县| 志丹县| 章丘市| 花莲县| 乌拉特前旗| 凉山| 南陵县| 临泉县| 瑞安市| 衡山县| 宜春市| 上蔡县| 崇义县| 南安市| 伊川县| 铁力市| 甘肃省| 博白县| 鹤峰县| 濉溪县| 武威市| 高要市| 舞阳县| 襄汾县| 江孜县| 颍上县| 彭山县| 镇原县| 滦平县| 建瓯市| 白山市| 瑞金市| 汤阴县|