发新话题
打印

Processing: 一个给设计师用的编程语言

Processing: 一个给设计师用的编程语言

wiki的一个定义。
最近看到有些人在用,觉得该是蛮有意思的。
原来是mit我最喜欢的media lab创造的,美学与计算组的东西我以前看到过,很想知道用什么作出来的,原来是这个。

http://en.wikipedia.org/wiki/Proce55ing
————————————————————
Processing is an open source project initiated by Casey Reas and Benjamin Fry, both formerly of the Aesthetics and Computation Group at the MIT Media Lab. It is "a programming language and integrated development environment (IDE) built for the electronic arts and visual design communities", which aims to teach the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks. One of the stated aims of Processing is to act as a tool to get non-programmers started with programming, through the instant gratification of visual feedback. The language builds on the graphical capabilities of the Java programming language, simplifying features and creating a few new ones.
乐乎设计,乐乎生活~

TOP

Processing 是一个开放原始码的程序语言及开发环境,提供给那些想要对影像、动画、声音进行程序编辑的工作者。此外,学生、艺术家、设计师、建筑师、研究员以及有兴趣的人,也可以用来学习,开发原型及制作。

开发这套软件的目的,是为了教导学习者一些以视觉呈现为主的计算机程序基础,并且将这套软件看作是一个软件的描绘本,以及专业的制作工具。

Processing是由一群艺术家及设计师所开发的,在相同的领域上,是其它商业性软件开发工具之外,另一个可以选择的工具。
————————————
豆瓣的讨论组
http://www.douban.com/group/processing/
乐乎设计,乐乎生活~

TOP

一个比较老的教程
——————————
Sketch专案
  所有在processing开启的一个项目都称为一个sketch专案,每个sketch项目都有一个和sketch项目名称相同的目录,并在此目录中产生一个sketch主程序。例如: 若项目名称为"Sketch_123",则sketch目录名称就是"Sketch_123",而sketch主程序名称就是"Sketch_123.pde"。
  
  sketch项目中若有使用影像、图片、声音、字型档案时,要将档案放在sketch目录下的"data"目录中。若有使用到其它的链接库时,则需要将链接库档案放在sketch目录下的"code"目录中。
  
  当执行汇出功能时,系统会将data及code目录下的所有档案,汇出到一个压缩档。 例如: "Sketch_123.jar"。
  
  原则上,sketch项目的档案都会放在Processing的安装目录下,若要将sketch项目的档案放在其它的目录的话,请利用"File"功能选单中的"Preferences"功能来设定。
  
  另外,可以同时有多个程序档案放在同一个sketch目录下。可以放置Processing原始档(附檔名是.pde),以及Java原始档(附檔名是.java)。
  
  
  汇出Applet
  若要让sketch程序可以在网页中执行的话,利用Export功能,系统会将Processing原始文件转换到Java原始档格式,然后编译成Applet。同时,系统也会产生一些相关档案,连同Applet档案,储存在sketch目录下的applet目录。
  
  产生的相关档案有
  index.html:HTML档案,包含applet及一个link。
  Sketch_123.jar:Java Archive
  Sketch_123.java:Java原始档
  Sketch_123.pde:Processing原始档
  
  在汇出时,系统会将data及code目录下的档案全部打包起来。因此,产生的JAR档案可能会很大,若在data及code目录下,有applet不会用到的档案,可以在汇出前先移除,或者在汇出后再利用压缩软件将JAR档案中不需要的档案移除, 如此就可以将JAR档案减小。
  影像坐标系统
  Processing采用Cartesian 坐标系统,原点在左上方,如图所示,x轴正值向右, y轴正值向下, z轴正值向前,负值向后。而视角预设在屏幕中间,也就是中心点在[width/2, height/2]。若有一个程序设定图像大小是 320 pixels X 240 pixels, 则[0,0]代表在左上角,[320,240]在右下角。
  
  Programming Modes主程序架构
  Processing的程序编辑模式有3种,基本模式(Basic Mode)、连续模式(Continuous Mode) 以及 Java进阶模式(Java Mode)。初学者最好先从基本模式学起,藉以熟悉坐标、变量、循环等的操作,然后再转到连续模式及Java进阶模式编写程序。
  
  基本模式
  
  这个模式用来绘制静态影像及练习程序的基本功能,简单的画线的程序代码可以直接在屏幕上呈现出来,以下这个范例会画一个黄色的长方形在屏幕上。
  
  size(200, 200); // 设定影像大小 200x200
  background(255); // 设定背景颜色
  noStroke(); //设定无框线
  fill(255, 204, 0); //设定填入的颜色
  rect(30, 20, 50, 50); //从坐标[30,20]处, 画一个50x50的长方形.
  
  
  连续模式
  
  这个模式提供一个setup()及draw()程序代码区块,程序一开始会先执行setup()区块的程序代码,而且只会执行一次,一般用来设定初始值及环境参数。接着会反复执行draw()区块,的程序代码,另外在setup()及draw()程序代码区块之外,可以自行再加入其它的程序区块,像是函式、类别、键盘事件和鼠标事件。
  
  以下范例会画4个圆圈,而画圆圈的方式是利用呼叫circles()函式的方式来完成。 circles()函式并不是Processing本身提供的功能,而是在此程序中另外编写的。此外,在draw()区块中的程序代码只会执行一次,因为在setup()区块中,设定了noLoop(),就是不要反复执行。
  
  转换Applet 到 Application
  虽然在在Processing的编辑环境中,可以直接以完整的Java程序语言来编写程序,但是只能以汇出Applet的方式在浏览器中执行,如果想要使用一些与存取本机计算机资源有关的程序功能的话,会因Applet在浏览器中执行而有所限制。基于安全性的考虑,在浏览器中执行Applet程序,是禁止存取本机计算机资源的, 否则就会变成黑客程序了。
  
  因此,需要将Applet转换成Application,如此就可以跳脱浏览器,单独地直接在本机计算机上执行程序了,也就可以完全地使用所有的功能了,同时,也可以以全屏幕的方式来呈现影像了。
  
  影像产生模式 (Rendering Modes)
  Processing提供的影像产生模式有以下3种,第一是利用Java 2D绘图链接库,第二是利用一个叫做P3D的3D缯图引擎,第三是透过JOGL来与OpenGL接口沟通。至于要决定使用哪一种模式来输出影像,可以利用size()函数来设定。
  值得一提的是,Processing花了很多努力,在让不同的影像产生模式结果相近,但是目前还是有一些差异。
  
  JAVA2D
  利用Java 2D绘图链接库来产生2D影像。这是预设的影像产生模式,如果没有特叮设定, 就会以这个模式产生影像。
  
  size(200, 200);
  background(255);
  noStroke();
  fill(255, 204, 0);
  rect(30, 20, 140, 160);
  
  以下范例是明确地设定要使用Java 2D影像产生模式
  size(200, 200, JAVA2D);
  background(255);
  noStroke();fill(255, 204, 0);
  rect(30, 20, 140, 160);
  
  
  P3D
  最适合用来快速绘制3D影像, 也支持2D影像
  size(200, 200, P3D);
  background(0);
  noStroke();fill(204, 204);
  translate(width/2, height/2);
  rotateX(PI/6);
  rotateY(PI/3);
  rect(-60, -60, 120, 120);
  
  
  OPENGL
  这个模式适用于有使用支持OpenGL图形加速卡的情况,可以加速图形的产生, 特别适用于要绘制更多图形以及更大显示范围的场合。
  
  Processing透过JOGL来与OpenGL接口沟通,其中JOGL是由SUN的游戏科技小组所发起的。因此,需要在计算机上安装支持OpenGL的图形加速卡,才可以充分发挥JOGL所提供的链接库的功能。
  
  采用此模式产生影像,其效果会因所使用的绘图卡不同及OpenGL支持的程度而有所不同。
  
  摘自:李家祥, Jason Lee,
  所以然实验室, Soiizen Lab.,
  2005/7/15
  
乐乎设计,乐乎生活~

TOP

还是比较简单易学的。。。属于快速原型工具。
乐乎设计,乐乎生活~

TOP

一本书,不错,比较全的东西。
————————————————————
2007-10-20 12:42:28   来自: whale
  
  Processing: A Programming Handbook for Visual Designers and Artists
  下载地址:
  http://www.imlab.cn/download/MIT ... rtists.Sep.2007.pdf
乐乎设计,乐乎生活~

TOP

2007-10-14 18:29:07   来自: 阿默斯 (杭州)
  小组里的ph7兄共享了一本最近刚出的原版书
  Creative Coding and Computational Art
  http://www.douban.com/subject/1474114/
  
  小弟放在http://file.mofile.com了,
  提取码是0460770260120415
————————————————————

这本写的很简单。。。能下。
乐乎设计,乐乎生活~

TOP

http://openprocessing.org/

一个processing的共享网站,很多很棒的程序~
乐乎设计,乐乎生活~

TOP

Programming Interactivity——A Designer's Guide to Processing, Arduino, and openFrameworks

如果你想学互动设计,就是这本了。 新出的

下载地址:

http://rapidshare.com/files/2603 ... _3_9_27967.rar.html
乐乎设计,乐乎生活~

TOP

perlin noise 是个好玩意~~
乐乎设计,乐乎生活~

TOP

http://www.flight404.com/blog/ 一个不错的processing编程者~
乐乎设计,乐乎生活~

TOP

发新话题