Processing是一种具有革命前瞻性的新兴计算机语言DOCWord文件下载.docx
《Processing是一种具有革命前瞻性的新兴计算机语言DOCWord文件下载.docx》由会员分享,可在线阅读,更多相关《Processing是一种具有革命前瞻性的新兴计算机语言DOCWord文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
40809984
交互设计
(2)
40808491
设计社会学
1学分
40804553
专业考察
40809013
专业实践
oProcessing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。
她是Java语言的延伸,并支持许多现有的Java语言架构,不过在语法(syntax)上简易许多,并具有许多贴心及人性化的设计。
Processing可以在Windows、MACOSX、MACOS9、Linux等操作系统上使用。
本软件目前是处于初版测试的阶段,试用版听说最近真的快要出了!
以Processing完成的作品可在个人本机端作用,或以JavaApplets的模式外输至网络上发布。
简
介
虽然图形使用接口早在二十年前成为主流,但是基础程序语言的教学到今天仍是以文字命令列的接口为主,学习程序语言为什么要那么枯燥呢?
人脑天生擅长的是空间的辨识,图形接口利用的正是这种演化上的优势,加上它能提供各种实时且鲜明的图像式反馈(feedback),可以大幅缩短学习曲线,并帮助理解抽象逻辑法则。
举例来说,计算机屏幕上的一个像素
(pixel)就是一个变量值(thevalueofavariable)的可视化表现。
Processing
将
Java
的语法简化并将其运算结果“感官化”,让使用者能很快享有声光兼备的交互式多媒体作品。
Processing
的程序代码是开放的,和近来广受爱戴
Linux
操作系统、Mozilla浏览器、或
Perl
程序语言等一样,使用者可依照自己的需要自由裁剪出最合适的使用模式。
的应用千变万化,但你会看到它们都遵守开放原始码的规定,这样的设计大幅增加了整个社群的互动性与学习效率。
源
起
的创始者:
CaseyReas与
BenFry是美国麻省理工学院媒体实验室(M.I.T.MediaLaboratory)旗下美学与运算小组(Aesthetics&
ComputationGroup)的成员。
美学与运算小组由著名的计算机艺术家
JohnMaeda领导,于一九九六年成立至今,在短时间内声名大噪,以其高度实验性及概念性的作品,既广且深地在艺术及设计的领域里,探索计算机的运算特质及其带来源源不绝的创造性。
极少数人能完美结合并平衡艺术家、设计师和计算机工程师的才华于一身,更重要的是Casey和Ben拥有开放源码的胸襟。
CaseyReas,目前为加州大学洛杉矶分校
Media/Arts系所的助理教授,及意大利艾维里互动设计学院(InteractionDesignInstituteIvrea)的附属教授。
Casey的作品主要在处理并抽象化生物体系的动态表现,并以多媒体、感应式装置艺术、雕塑和数字印刷等媒材呈现。
Casey
时常演讲并展览于于欧洲、亚洲及美国各地,他为本届奥地利的林兹艺术节(ArsElectronicainLinz︰多媒体艺术界规模最大的年度盛事)的评审。
BenFry现仍在
MIT
的媒体实验室攻读博士,他的研究重心在于如何将有机信息可视化(OrganicInformationVisualization),并创造出能随着不断更新的数据,实时进行形变或质变的电子动态系统。
他的博士论文在处理如何可视化解码成功后人类基因学所揭示的庞大信息量,Ben
用的名词为
GenomicCartography
(基因地图学)。
使用者
网络的兴起激起了许多设计师和艺术家学习程序语言的动机,因为学会了计算机的语言,你才能跟它沟通,这样不只静态的图像和文字,连动态的互动模式都可以成为设计师和艺术家全盘掌控下的精确表现。
杰出的设计师和艺术家往往具有病态的控制欲,这是无庸置疑的,所以才会有些人干脆连软件都自己写算了,而且写程序也是艺术!
如何写的简洁,还要清楚明白,中间的学问很大。
谁会去学或是去用
呢?
大致上是对科学与艺术之间的跨领域表现有兴趣的人。
一般的数字艺术家或设计师会以现有的软件(例如
PhotoShop
Illustrator,
Flash
或
Director)来从事创作,往往在不知不觉中,被大企业所主导的制式化生产工具,限制了创意及表现形式的可能性。
但是如果你(你)刚好拥有撰写计算机语言的能力,你(你)大可以为了实现脑海里的杰作,专门来打造一个能跑它的程序,如此一来,不但作品的内容是艺术,其工具,形式及创作过程本身亦是一桩艺术。
现
况
虽然还只是在测试阶段,Processing
目前已在网络上集结了一群志同道合的专业人士,为软件的教学与更新奠定了基础。
网站上的
Learning和
Reference,就是完整的学习数据库﹔Exhibition
中则提供了许多当今最杰出的电子艺术家的作品与连结﹔你(你)可以在网站中的
Download
部分免费取得该软件,并在讨论版
Discourse
注册,这是一个完全民主式的论坛,可以问问题,发表意见,提供作品的交流,并一起准备未来的附加及外挂程序。
哪天若是心血来潮,在泉涌的灵感下创造了什么大作,别害羞,投稿给试试,你(你)的作品将会被放在网站上供人欣赏与学习。
在美国,除了
和
Ben各自所属的学术机构外,Processing
亦在耶鲁、哥伦比亚、纽约大学、旧金山艺术学院等地被教授或使用。
目前看来,Processing
先要在纽约、波士顿、旧金山、洛杉矶、德国柏林、芬兰赫尔辛基、意大利艾维里、哥伦比亚波哥大等城市生根,再由这些城市扩散开来。
在亚洲除了日本,
已进入位于马尼拉及汉城的学术机构。
∙鉴于本人编程低能,processing刚刚初步,也不好写什么长篇大论来给大家介绍,网上也没有现成的中文资料可以copy,翻译太麻烦……
……组长很忙……
……而且很无聊……
所以自己探索吧,好奇心永远是最好的老师
你需要3样东西tostartwithProcessing☺
1、下载Processing,软件不大
Wayfarer
byBenHemmendinger
Wayfarerisadevelopingroguelikegamewithretro,quasi-3Dgraphics.Explorerandomlygenerateddungeonsandbattlepeculiarfoes!
Perishhorribly!
Links:
RogueBasin
MudTub
byTomGerhardt
Thisexperimentalorganicinterfaceallowspeopletocontrolacomputerwhileplayinginthemud.ThroughanAPIbuiltwithProcessing,artistsanddesignersdevelopmud-controlledgames,physicssimulations,andexpressivetools.
NYUITP
MOSstack
byMOS(MichaelMeredith,HilarySample,WilliamMacfarlane)
Thissoftwareisforstackingblockswithinanenvironmentofforces.Aseachunitisstackeditsimultaneouslycalculatesitsownweightandbalanceinreal-timetoproducestrangestructuralforms.
MOScat,
ComputationalPile,Arcade
TerreNatale(Exits2)
byStewartSmith,RobertGerardPietrusko,AaronMeyers,MichaelDoherty,andHans-ChristophSteiner
Ahalf-hourimmersivevisualizationofhumanmigrationdata;
premieredattheFondationCartierinParis,2008.ProducedunderDillerScofidio+Renfro,etal.
StewartSmith,
RobertGerardPietrusko,
AaronMeyers,MichaelDoherty,
Hans-ChristophSteiner
MTVBrazilID2009
byDimitreLima
AsoftwareparticlesystemcreatesvariationsoftheMTVlogotype.
Dmtr.org,
Piloto
InterimCamp
byMarcusWendt,Vera-MariaGlahn,ArranPoole
Anexperimentalanimationfilmbasedondriftingandmorphingsurfacestructures,createdwithacustomgenerativesoftwaretool.Ameditationaboutthepursuitofanidea;
aboutobstacles,struggleandfailurealongtheway.
field
PeopleMover
byAeolab
Aclockworkofcolorful'
mobiles'
assemblesandunwindsaccordingtodatacollectedbythreeusersofNokiaN95smartphonesoveraperiodofseveralmonths.
Aeolab
BallDroppings
byJoshNimoy
Turnyoursoundup.Drawlinesontheblackscreentobouncetheballs.Enjoythemusic.
BallDroppings,
JTN
Oasis
byYunsilHeo,HyunwooBang
Aplayfulspacewherepeoplediscoverandexplorevirtuallife.
everyware
PlatonicSolids
byMichaelHansmeyer
Three-dimensionalsubdivisionofplatonicsolids,inspiredbyErnstHaeckel'
s'
KunstformenderNatur.'
MichaelHansmeyer,SubdivisionFlickrSet
Monsters
byLukasVojir(Ed.)
Blackandwhite,reactivemonsterscreatedbytheProcessingcommunity.
Rmx
BigScreens2
byNYUITP
Forthesecondyear,DanShiffman'
sNYUstudentswritesoftwarefora120by12footvideowallatIAC'
sworldheadquartersinNYC.
S
2、脑子
具有一定的编程知识
或者
具有较强的逻辑分析能力
(代码不难,0基础的同学多观察多动手就ok,很好玩的>
<
,而且很漂亮>
)
3、宝典
这是官网
processing.org
来个概览
发新帖子
回帖分享
[教程1]用Processing进行数据可视化,第1部分:
语言和环境简介(上)
楼主罗佳佳2011-07-0403:
06
虽然很多开源项目的初衷都是为现有的应用程序构建替代方案,但是仍有大量的项目彰显了创新性。
Processing就是其中的一个。
Processing在2001年诞生于麻省理工学院(MIT)的媒体实验室,主创者为BenFry和CaseyReas,当然还有来自CarnegieMellon、洛杉矶的加利福尼亚大学以及迈阿密大学等的贡献。
Processing的最初目标是开发图形的sketchbook和环境,用来形象地教授计算机科学的基础知识。
之后,它逐渐演变成了可用于创建图形可视化专业项目的一种环境。
如今,围绕它已经形成了一个专门的社区,致力于构建各种库以供用这种语言和环境进行动画、可视化、网络编程以及很多其他的应用。
在本文中,您会发现Processing是一个很棒的进行数据可视化的环境,具有一个简单的接口、一个功能强大的语言以及一套丰富的用于数据以及应用程序导出的机制。
Processing运行于GNU/Linux®
以及MacOSX和Windows®
上,并且支持将图像导出成各种格式。
对于动态应用程序,甚至可以将Processing应用程序作为Java™applet导出以用在Web环境内。
本文将先介绍ProcessingIDE,然后再讨论Processing语言的第一个层面。
之后将会介绍一些关键的图形原语,最后则探讨几个利用这些原语的应用程序。
processing环境
第一步是安装Processing环境。
去到Processing.org,单击DownloadProcessing并选择您的操作系统。
请注意,本文中的例子使用的是ProcessingV1.2.1。
下载了压缩文件后,用tarxvfzprocessing-1.2.1.tgz对其进行展开。
此外,还需要确保Java技术已经可用。
在Ubuntu上,只需键入sudoapt-getinstallopenjdk-6-jdk。
安装完成后,转到之前解压缩时创建的processing-1.2.1目录并尝试键入./processing。
这应该会弹出ProcessingDevelopmentEnvironment(PDE或ProcessingIDE),如图1所示。
占此窗口较大的部分是文本编辑器。
如果输入图中所示的两行代码,然后单击Run(左上角的三角形),出现一个窗口,显示您所输入的简单程序(或Processing术语所指的sketch)的结果。
单击Stop(左上角的方框)退出程序,窗口消失。
图
1.PDE和Results窗口
现在,让我们先来深入研究Processing语言,探讨它的主要特性,并且开发一些有趣的应用程序。
Processing语言
Processing是用Java编程语言写的,并且Java语言也是在语言树中最接近Processing的。
所以,如果您熟悉C或Java语言,Processing将很容易学。
并且在程序如何构造方面,也作了一些简化。
Processing并不包括Java语言的一些较为高级的特性,但这些特性中的很多特性均已集成到了Processing,所以您无需了解它们。
之所以选择Java语言是因为Processing应用程序被翻译成Java代码执行。
选择Java范型简化了这种翻译并让开发和执行可视化程序变得十分简单和直观。
图形环境
正如您在图1所见,在Processing内进行开发涉及到的是PDE和显示窗口。
2-D图形的坐标系如图2所示。
size关键字以像素为单位定义了显示窗口的大小并且通常都是Processing应用程序内的首要步骤。
图2.2-D显示窗口的坐标
如图2所示,size关键字指定显示窗口的X和Y坐标。
line关键字则会在两个像素点之间绘制一条线(以x1、y1tox2、y2的格式)。
请注意,超出屏幕边界(size定义的边界外)画线并非不允许,只是被忽略了而已。
本文无意对此做深入探讨,但size接受可选的第三个参数mode。
mode用来定义要使用的呈现引擎并支持PDF(直接呈现为Adobe®
PDF文档)、OPENGL(利用一个可用的Open-GL图形适配器)、P3D(为了迅速的3-D呈现)等。
默认的是JAVA2D,它最适合于高质量的2-D成像。
现在,我们来看一些基本的图形原语,然后再深入探讨几个示例应用程序。
图形原语
Processing包含了大量各种各样的几何形状以及这些形状的控件。
本节会简介一些基本的图形原语。
背景和颜色
background功能被用来设置显示窗口的颜色。
此函数可以使用各种不同的参数(来定义一个灰度值或Red-Green-Blue[RGB]颜色)。
清单1内的代码片段会生成如图3所示的输出,其中的cella)。
清单1.使用Background函数
size(100,100);
background(0,128,0);
绘制像素点
可以使用set函数绘制单个像素点。
此函数接受显示窗口内的x,y坐标以及作为颜色的第三个参数。
Processing也有一个类型,称为color,通过它,可以定义用于某个操作的颜色。
在本例中,我们创建了一个颜色实例并用它来设置显示窗口内的某个像素点(参见清单2和图3中的cellb)。
清单2.设置像素点和颜色
for(intx=0;
x<
100;
x++){
for(inty=0;
y<
y++){
colorc=color(x*2,y*2,128);
set(x,y,c);
}
可以使用get操作来读取显示中的一个给定像素点的颜色。
虽然set很简单,但它不是操做显示的最快方式。
要想快速访问,可以使用pixels数组(与loadPixels和updatePixels函数一致)。
绘制形状
在Processing内使用单个函数绘制形状十分简单。
要设置在绘制形状时使用何种颜色,可以利用stroke函数。
此函数可接受一个单独的灰度参数或三个RGB参数。
此外,还可以用fill命令定义这个形状的填充色。
清单3显示了如何绘制线、矩形、圆(使用椭圆)及椭圆。
line函数接受四个参数,代表的是要在其间绘制线条的点。
rect函数可绘制一个矩形,并且前两个点定义位置,而后面两个点则分别定义宽度和高度。
ellipse函数也接受四个参数,分别定义位置和宽/高度。
当宽和高相等时,就是一个圆形。
还可以使用ellipseMode函数定制椭圆,它指定x,y位置是否代表了椭圆的角(CORNER)或中心(CENTER)。
参见图3中的cellC。
清单3.线和形状
stroke(0,128,0);
line(10,10,90,90);
fill(20,50,150);
rect(30,30,60,40);
fill(190,0,30);
ellipse(30,70,20,20);
fill(0,150,90);
ellipse(70,30,30,20);
绘制四边形
在Processing内使用quad可以很容易地绘制有四个边的多边形。
四边形接受八个参数,代表的是这个四边形的四个顶点。
清单4内的示例创建了10个随机的四边形(其中这些点必须是顺时针或逆时针顺序。
此代码还会为每个四边形创建一个随机的灰度。
清单4.绘制四边形
for(inti=0;
i<
10;
i++){
intx1=(int)random(50);
inty1=(int)random(50);
intx2=(int)random(50)+50;
inty2=(int)random(50);
intx3=(int)random(50)+50;
inty3=(int)random(50)+50;
intx4=(int)random(50);
inty4=(int)random(50)+50;
fill(color((int)random(255)));
quad(x1,y1,x2,y2,x3