NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 59663|回复: 20
打印 上一主题 下一主题

[网络资源] 摘自网上的关于processing的介绍与教学,适合新手学习

[复制链接]
跳转到指定楼层
1m
发表于 2010-8-31 16:02:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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支持的程度而有所不同。

评分

参与人数 1强度 +3 照度 +50 收起 理由
skywoolf + 3 + 50 感谢分享

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享
2m
 楼主| 发表于 2010-8-31 16:03:51 | 只看该作者
对processing有一个简单的了解和认识,再学习那些英文教程会容易很多。
受到警告 3m
发表于 2010-8-31 18:49:02 | 只看该作者
真是好图阿好图阿!!!
4m
发表于 2010-8-31 19:26:05 | 只看该作者
你翻译的?貌似翻译得不错啊~~~ 这是官网上的教程
5m
发表于 2010-9-1 09:11:09 | 只看该作者
不知都是哪里的教程呢
6m
发表于 2010-9-1 22:39:56 | 只看该作者
thx so much! i've been struggling so much about processing!
7m
发表于 2010-9-7 22:20:40 | 只看该作者
processing~!!论坛里这么火热,我也想学了。。
8m
发表于 2010-9-9 18:29:25 | 只看该作者
第一次听说这个软件,主要优势是什么呢?
9m
发表于 2010-9-25 10:53:05 | 只看该作者
感谢分享。。。。。
10m
发表于 2010-10-21 20:55:46 | 只看该作者
基本介绍。。。
11m
发表于 2011-8-2 09:38:04 | 只看该作者
学习 。。。。。。。。。。
12m
发表于 2011-10-19 13:52:22 | 只看该作者
有效{:3_54:}
13m
发表于 2011-10-25 13:25:21 | 只看该作者
很好的翻译 学习之~
14m
发表于 2011-11-1 15:50:10 | 只看该作者
好好学习天天向上
15m
发表于 2012-1-8 13:02:47 | 只看该作者
学习,,学习!!!!!!!!!!!{:3_66:}
16m
发表于 2012-1-8 14:44:31 | 只看该作者
英语牛人。。{:3_54:}
17m
发表于 2012-10-16 09:44:47 | 只看该作者
可以 学习了
18m
发表于 2013-3-22 14:28:48 | 只看该作者
我想导入opengl library,但是发现我的sketch-import library,和add library里面都没有opengl,请问如何解决?是缺少什么东西吗??
19m
发表于 2013-3-22 19:40:22 | 只看该作者
有人吗++~~~~~
20m
发表于 2014-1-15 04:24:34 | 只看该作者
学习了~~~~

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-4-20 20:36 , Processed in 0.065685 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表