Processing简明教程与Java平台移植方法
1 Processing
1.1 Processing简介
Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。它是 Java 语言的延伸,并支持许多现有的 Java 语言架构,不过在语法 (syntax) 上简易许多,并具有许多贴心及人性化的设计。Processing 可以在 Windows、MAC OS X、MAC OS 9 、Linux 等操作系统上使用。目前最新版本为Processing 3。以 Processing 完成的作品可在个人本机端作用,或以Java Applets 的模式外输至网络上发布。
上面这段是粘贴百度百科的,哈哈!虽然说Processing是一种新兴语言,但我却不这么认为,什么原因呢?如果你了解Java,那你肯定会觉得processing的语法与Java几乎没有区别。从结构上讲,processing是支持全局变量,但是Java不支持,表面上看起来这点是Java和Processing之间的区别,其实不然,不信的话继续往下看。
2.2 Processing下载与安装
进入processing官方网站点这里:https://processing.org/。你也可以直接点击https://processing.org/download/链接进行下载。详情见下图:

图1.1 Processing官方网站 图1.2 Processing下载页面
选中No Donation单选按钮,单击Download跳转到下面页面。

图1.3 下载页面
选择符合你当前电脑系统的安装包进行下载,这里我选择的是Windows (64bit)版,从该页面也可以发现,Processing最新版已经是3.1.1了。
Processing的安装非常简单,双击刚刚下载的安装包,如下图所示,一路Next,直到结束安装就行了。
2.2 Processing语法介绍
双击桌面Processing快捷方式打开Processing开发环境(客户端)。如下图所示:

关于上述开发环境,目前你只需要知道下面信息就行了:
- 菜单栏下方是工具栏,目前这里有两个按钮,第一个按钮
用于启动运行,第二个按钮
用于强制终止执行 - 中间空白区域用于输入processing代码
- 空白区域下方的一行灰色区域用于输出错误信息
- 最下方黑色区域用于显示调试信息和程序输出
接下来我们尝试创建一个非常简单的Demo,主要用于讲解Processing的语法和组织结构。首先在中间空白区域输入下面代码:
int x1 = 10;
int y1 = 10;
int x2 = 100;
int y2 = 100;void setup () {
stroke(255);
size(200, 200);
}void draw () {
line(x1, y1, x2, y2);
}
完成之后单击File->Save菜单将项目保存到桌面,项目名称为Demo。接下来单击工具栏的运行按钮,稍等片刻,弹出如下窗口:

从代码和窗口都可以发现,我们在窗口上画一条白色的线。
接下来我们解释上述代码。正如我们前面说的,Processing是支持全局变量的。上述代码的x1,y1,x2,y2都是全局变量。setUp()和draw()方法都是Processing的预定义方法,每次程序启动时,setUp()方法都会被调用一次,所以这里是初始化程序配置的最佳位置。然而,程序运行期间将不断调用draw(),根据命名也可以想象的到,draw()方法用于绘制(渲染)图形。
stroke(int gray)和size(int w, int h)都是Processing为我们提供的配置方法。其中,stroke()用于设置绘制图形时线条的颜色,参数gray表示将要设置的灰度,取值范围应该位于0到255之间,gray等于0,意味着接下来绘制的线条以黑色显示;显而易见的,当gray等于255表示以白色绘制线条。size()方法用于设置窗口的尺寸,单位为像素。类似于上述两种配置方法,Processing还为我们提供了下面方法:
- stroke(int r, int g, int b):设置线条的RGB颜色
- stroke(int r, int g, int b, int a):设置线条的RGBA颜色
- fill(int gray):以灰度值设置图形的填充色
- fill(int r, int g, int b):设置图像的RGB填充色
- fill(int r, int g, int b, int a):设置图形的RGBA填充色
- noFill():设置不填充闭合区域(如矩形、椭圆)。
- noStroke():设置取消线条,即所有绘制的图形将不再包含边框。
- frameCount:表示当前帧的计数。
- radians(float angle):将角度转换为弧度。
接下来看一个更加复杂的实例:
Processing简明教程与Java平台移植方法的更多相关文章
- Java 8 新特性-菜鸟教程 (4) -Java 8 默认方法
Java 8 默认方法 Java 8 新增了接口的默认方法. 简单说,默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法. 我们只需在方法名前面加个default关键字即可实现默认方法. 为 ...
- VueJS简明教程(一)之基本使用方法
简介:这是一篇超级简单的入门文章 如果说是JQuery是手工作坊,那么Vue.js就像是一座工厂,虽然Vue.js做的任何事情JQuery都可以做,但无论是代码量还是流程规范性都是前者较优. Vue. ...
- Java 简明教程
本文为 Java 的快速简明教程,主要用于快速了解.学习和复习java的语法特点. // 单行注释 /* 多行注释 */ /** JavaDoc(Java文档)注释是这样的.可以用来描述类和类的属性. ...
- Java网络编程简明教程
Java网络编程简明教程 网络编程 计算机网络相关概念 计算机网络是两台或更多的计算机组成的网络,同一网络内的任意两台计算机可以直接通信,所有计算机必须遵循同一种网络协议. 互联网 互联网是连接计算 ...
- Python 简明教程 --- 20,Python 类中的属性与方法
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 与客户保持良好的关系可以使生产率加倍. -- Larry Bernstain 目录 类中的变量称为属 ...
- NDK Android* 应用移植方法
概述 本指南用于帮助开发者将现有的基于 ARM* 的 NDK 应用移植到 x86.假设您已经拥有一个正常执行的应用,须要知道怎样可以高速让 x86 设备在 Android* Market 中找到您的应 ...
- appium简明教程
appium简明教程 什么是appium? 下面这段介绍来自于appium的官网. Appium is an open-source tool you can use to automate mobi ...
- Tips & Tricks:Apache log4j简明教程(一)
Apache log4j的官方介绍是“log4j is a reliable, fast and flexible logging framework (APIs) written in Java, ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
随机推荐
- Unity浅析
在分析PRISM项目的时候, 发现里面用到了Unity 这个Component, 主要用于依赖注入的.由于对其不熟悉,索性分析了一下,记载在此,以作备忘. 任何事物的出现,总有它独特的原因,Unity ...
- docker-centos 7.2
1.安装准备 预防volumes项出现Permission denied setenforce 0 #关闭selinux防火墙,临时关闭.永久关闭需改/etc/selinux/config文件,将SE ...
- GridView_RowCommand事件中取得GridViewRow
GridViewRow row = ((Control)e.CommandSource).BindingContainer as GridViewRow;
- Beta版本冲刺——day3
No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 站立式会议 大将回归,基本功能接口也 ...
- Verilog HDL那些事_建模篇笔记(实验七:数码管电路驱动)
1.同步动态扫描 多个数码管的显示采用的是同步动态扫描方法,同步动态扫描指的是:行信号和列信号同步扫描,是一种并行操作. 2.数码管驱动电路实现思路 如果要求数码管显示我们想要的数字,首先需 ...
- Go语言学习笔记1 变量,类型以及赋值
1.变量 1.1 声明变量 使用var关键字可以创建一个指定类型的变量: var i int = 0 var i = 0 var i int 以上三个表达式均是合法的,第三个表达式会将i初始化为int ...
- Ubuntu 14.04 (Trusty Tahr) LTS发布,附下载地址,各种镜像【bubuko.com】
Ubuntu 14.04 有很多的改进和新功能: 同时还发布几个不同版本:Ubuntu GNOME.Kubuntu.Xubuntu.Lubuntu.Edubuntu.Ubuntu Kylin.Ubun ...
- 影响性能的关键部分-ceph的osd journal写
在前面一篇文章中,我们看到,当使用filestore时,osd会把磁盘分成data和journal两部分.这主要是为了支持object的transaction操作.我的想法是,ceph需要具有数据保护 ...
- 解决ie6下不支持fix属性,模拟固定定位
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- [经验交流] docker in docker 的变通实现方法
最近在做CI持续集成环境的容器化,其中一个工作是:在容器中构建容器镜像. 对于这个需求,网上有一些 Docker in Docker 的方法,具体需要修改宿主机的配置.这种方式在单机环境下.对安全要求 ...