Processing入门简介
1 Processing入门简介
1.1 Before you start
Processing是一个为开发面向图形的应用(visually orientedapplication)而生的简单易用的编程语言和编程环境。Processing的创造者将它看作是一个代码素描本。它尤其擅长算法动画和即时交互反馈,所以近年来在交互动画,复杂数据可视化,视觉设计,原型开发和制作方向越发流行,大家都喜欢这个可爱贴心,简洁好用的编程工具。
本文将简洁地向你描述Processing的下载、配置、使用方法和编程思路,希望本文能给你打开一扇通向自由创造的大门。
Processing官方网址:https://processing.org
网站包含了Processing的作品展示,对象/函数文档和应用示例,背景介绍,相关链接(论坛、维基、FAQ等等)。
如果你想获得详细的、最新的Processing资讯,请访问该网站;如果你有足够的英文水平和精力,请停止向下继续阅读,访问该网站,因为那上有能满足你的更多更丰富和权威的资讯。
1.2 Equip yourself
由于Processing基于Java,请保证你的计算机已经配置Java环境,否则Processing不能正常工作。
http://processing.org/download
Processing是开源软件,开发者下载前会询问你是否向其捐款,对此我的建议是:有钱就捐点吧!
当然,选择“No Donation”可以直接看到下载链接,选择“Download”进入下载页面:
选择适配你电脑的版本,点击下载。这里以windows64位系统为例。
(再次提示,必须先配置好Java环境Processing才能正常运行。
网友提供环境配置教程:http://wenku.baidu.com/view/a2e732caa1c7aa00b52acb9b.html)
完成!你已经看到了Processing的开发环境PDE。把processing.exe创建桌面快捷方式,今后可以方便的使用了。
1.3 Start!
现在你已经进入了一个全新的Processing世界,你要开始学习Processing的习惯。
1.3.1 Sketch
之前已经提到过,Processing的创造者它看作是一个代码的素描本,在这里,你可以用代码绘画。所以,Processing的工程也非常文艺地取名为“素描本”——Sketch。
选择Sketch→Show Sketch Folder,打开当前工程文件目录。
1.3.2 PDE
Processing的开发环境被称为PDE(ProcessingDevelopment Environment),在PDE的界面中,你可以看到三个部分:工具栏,代码编辑区,控制台。
这些功能用来控制Sketch(Processing工程),其中,输出应用的功能将在下一节详述。
Processing支持多种运行模式,默认为Java,即运行时生成一个桌面应用,可以下载添加Android(生成安卓程序),JavaScript(生成嵌入web的applet)等模式。
Processing以选项卡tab组织代码编辑区,每个tab实际上对应了一个.pde格式的代码源文件。点击右方的小下拉箭头,可以对tabs进行操作。
当你打开processing.exe时,Processing就为你默认创建了一个工程(Processing中被称为Sketch),并为你创建了一个以“sketch_+当前日期+顺序编号”命名的tab。选择Sketch→Show Sketch Folder,就能够看到当前工程文件目录。这是工程是暂存的状态,选择 可以进行更名和保存。
黑色区域上方是信息区,运行时的PDE状态、出错信息等都会显示在这里;
现在刚打开的工程是空白的,点击运行键,你的屏幕上将出现运行结果:
默认情况下,Processing程序的运行结果是一个100*100的灰色空白窗口。在代码编辑区输入下列代码:
如果出了意外,那你的代码输入错误,你将在控制台看到你的错误信息,根据这个信息修正你的代码。
1.4 Hello World!
ellipse(mouseX, mouseY, 80, 80);
这段代码的意思是,将窗口大小设定为480*120,如果鼠标按下,则在鼠标的位置画一个半径为80的白色圆,否则在鼠标的位置画一个半径80的黑色圆。
1.4.1 Processing程序逻辑
在这个程序中我们重写了两个函数:setup()和draw()。
setup()是在程序开始时调用的函数,只执行一次;而draw()在setup后被调用,并且将循环地、不停地被调用。
1、在setup函数中加入如下代码并运行:background(255);
2、将刚才加到setup中的那一行代码剪切到draw函数中并运行。
结果如何?我们可以看到,在第一步时,运行效果和一开始相仿,鼠标滑动会留下一连串的圆圈轨迹,而第二步中,我们不能得到轨迹,只能看到一个随着鼠标移动的黑球或者白球。
Processing就以这样的方式,让图形图像动起来,和用户进行交互。
1.4.2 空间和色彩的游戏
下面将写在draw函数中的background()语句修改一下:
background(mouseX,mouseY, 100);
再次运行。
如果一切正常,你在移动鼠标的时候可以看到背景颜色随着鼠标小球的位置在逐渐的变化。
这里我们给了background函数三个参数,这时候,这三个参数就分别代表了red,green和blue的值,而mouseX,mouseY是Processing中记录鼠标位置的对象,所以,当时间流逝,draw函数被不断调用,窗口的背景值就随着鼠标的位置不断改变了。
看到了么?Processing就这样将你的鼠标位置“翻译”成了色彩!
这只是Processing的冰山一角。Processing中有大量的内置对象和函数,它们让你轻松的操控空间和色彩,创造出各式各样的作品。
1.4.3 保存和分享!
到现在为止我们还没保存过我们的工作,点击 (或ctrl+s),在弹出的窗口里输入你想保存的工程名(Processing默认的工程名是“Sketch+当天时间+字母编号”,我一般保存时将最后的字母修改为我想要的名字即可,即“sketch_131022_helloworld”)Processing会在你选好的位置为它创建一个sketch。
如果你想让将你的大作和朋友们分享,你可以将程序发布成应用。点击 (或ctrl+e),根据提示操作,你就能得到在Windows、iOS或者Linux下运行的应用程序。以Windows为例,导出应用后sketch中会出现为32位系统和64位系统的两个文件夹,其中每个文件夹中都含有一个同名批处理文件,一个Processing库文件夹lib,和一个ped源文件夹source(程序源代码,没有它仍然导出的程序可以运行),如果有数据还会有一个data文件夹,运行时,执行.bat批处理文件就行了。
1.5 三个锦囊
到现在为止,Processing的基本操作和逻辑我已经介绍完了。最后送大家三个锦囊。
1.5.1 Reference
Processing为它的使用者提供了相当好用的文档。
观察PDE中的程序代码,程序中有颜色的size()、fill()、ellipse()函数和mousePressed、mouseX、mouseY,是Processing内置的函数和值。
在这些词上点击右键 > Find in Reference,就会在弹出的页面中看到这些内置函数、对象的说明文档。
这个文档来自本地(在你解压的Processing包里),你可以从打开的这个文档中的链接找到所有的Processing对象、类、函数,Processing的创作者为我们提供了全面的描述和形象的介绍。同样的内容可以在官网的Reference上找到。
当你不清楚这个函数的用途,或者参数、返回值时,可以以这样的方式查看它。当你想知道Processing中所有的函数、对象和它们的用法时,也可以去查看Reference。
1.5.2 Examples
Processing为它的使用者贴心地准备了大量全面的使用示例。
在PDE中选择file > Examples(或Ctrl+Shift+O)就会弹出Processing的Examples窗口。
这里集成了大量的Processing案例,涵盖了Processing的各个方面各种话题。点开其中的任何一个工程,都会开启新的PDE窗口,这里,Processing用最简单优美的代码来表达问题,你可以点击运行查看代码结果,在代码区观察代码结构。
1.5.3 One More Thing
打开一个新工程(Ctrl+n),输入下列代码并运行:
void setup(){
size(400, 400);
}
void draw(){
background(#FFEE31);
pushMatrix();
translate(200, 200 - 60);
//eyes
PVector mouse = new PVector(mouseX, mouseY);
mouse.sub(200, 200 - 60, 0);
mouse.limit(7);
fill(0);
noStroke();
rectMode(CENTER);
rect(-1*40+mouse.x, -15+mouse.y, 15, 25, 8);
if(mousePressed)
rect(40+mouse.x, -15+mouse.y, 28, 10, 5);
else
rect(40+mouse.x, -15+mouse.y, 15, 25, 8);
//mouth
noFill();
strokeWeight(12);
stroke(0);
arc(0, 0, 150, 120, PI/4, PI-PI/4);
popMatrix();
//text
textSize(25);
textAlign(CENTER);
text("Enjoy your hacking with\nProcessing!", width/2,height/2+100);
}
Reference
1Processing’s Official Site: http://www.processing.org/tutorials/
2 CaseyReas and Ben Fry, http://www.processing.org/tutorials/gettingstarted/, 2010
3 BenFry, http://www.processing.org/tutorials/overview/, 2007
Processing入门简介相关推荐
- 大数据入门简介(一)了解大数据
大数据入门简介(一) 首先我们先想想为什么会大数据,或者说它能干什么? 与常规数据比较,大数据体现在什么地方?大数据大数据,关键是什么,大!!!就是这么浅显,大,什么大,数据大呗.下面我们就围绕这个大 ...
- Markdown入门简介
参考 http://sspai.com/25137 作者: Te_Lee 文章来源: 少数派 Markdown入门简介(使用工具Haroopad) 一.使用的工具----haroopad(http:/ ...
- 分布式文件系统—HDFS—入门简介
原文作者:Zh_Y_G 原文地址:HDFS入门简介 目录 HDFS是什么? 设计目标: 安装配置 HDFS读写流程图解 CheckPoint HDFS是什么? 易于扩展的分布式文件系统 运行在大量普通 ...
- Logstash入门简介
Logstash入门简介 介绍 Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(我们的存储库当然是ElasticSearch) ...
- android 教程概要,Android精通教程-第一节Android入门简介
前言 大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cea ...
- 车联网大数据框架_大数据基础:ORM框架入门简介
作为大数据开发技术者,需要掌握扎实的Java基础,这是不争的事实,所以对于Java开发当中需要掌握的重要框架技术,也需要有相应程度的掌握,比如说ORM框架.今天的大数据基础分享,我们就来具体讲一讲OR ...
- 掌握 Ajax,第 1 部分: Ajax 入门简介
2019独角兽企业重金招聘Python工程师标准>>> 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作原理,构建网站的一种有效方法 Ajax 由 HTM ...
- 大数据与Hadoop有什么关系?大数据Hadoop入门简介
学习着数据科学与大数据技术专业(简称大数据)的我们,对于"大数据"这个词是再熟悉不过了,而每当我们越去了解大数据就越发现有个词也会一直被提及那就是--Hadoop 那Hadoop与 ...
- Linux防火墙入门:简介(转)
Linux防火墙入门:简介(转) 前言 一旦连上网络,就充满各种危机. 许多人基于各式各样的理由,想侵入你的系统,这种人俗称为 cracker.尤有甚者,近年来,cracker 圈里流行一种结合病毒行 ...
- QT——开发入门简介
[系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <嵌入式Linux开发实战> 1.你了解Qt吗? ...
最新文章
- Python中常用的内值方法
- 2层框架结构柱子间距_框架结构的特点有哪些?框架结构是什么?
- 27.思科防火墙(ASA)
- Java面试题库,java用tabula解析pdf表格
- 导师什么时候会放弃学生?
- 主人公的出场—一个程序员的成长史(1)
- Mysql学习总结(35)——Mysql两千万数据优化及迁移
- 华为云龙api自动化工具_聊聊华为GDE刚发布的一体化低门槛开发平台ADC 2.0
- 【BZOJ 1095】 [ZJOI2007]Hide 捉迷藏 括号序列
- Spring ——《第二章》Spring中的Bean
- centos7.x中设置hostname方法
- Codeforces 631E 斜率优化
- autocad锐龙英特尔_4千左右预算,2020年CAD/SU/犀牛/Revit轻薄本推荐/选购指南
- edge打开pdf不显示印章_edge打开pdf后,draw功能栏怎么没了?
- unity抗锯齿关闭
- java栈和队列的区别是什么意思_java中的栈和队列有什么区别
- 颜色值RGB转换为HEX(十六进制)
- 《这里是中国》精美词句摘抄
- 强网杯2022 pwn 赛题解析——yakagame
- 极限编程:价值观、原则和实践