也不知道为什么技能考试要考这样的两个东西,真的是… 虽然说不难,但是 Python 用多了总还是会忘的。还有就是闭卷考试这种模式——你们不知道真正做开发的人都是开着 API 文档做的吗。

Anyway,来确定以下笔者本人的备考模式。本着学技术的要求

  • 由于 matlab 用过,Processing 基于 Java 语法,所以基本的语法不做讲解
  • **注意:Java 风格下,变量名、函数开头小写,== 后面经常接的常量全部Capital**

Getting Started,还有画图方向的背单词

初始化

Processing 的初始化至少要这么做:

void setup()
{
  size(500, 500);  // set window size
  smooth();  // anti-aliasing
}

此外初始化还有这些隐藏设置:

void setup()
{
  size(500, 500);  // set window size
  smooth();  // anti-aliasing
  background(255, 255, 255);  // set background RGB

  /* Advanced config API for animation */
  frameRate(5);

  /* Background Color */
  background(255, 255, 255);
}

构图

这里要背的单词很多:point, line, triangle, quad (quadrilateral, 四边形), rect, ellipse, arc, fill, stroke

如果你没有学过 Java, 你还要背 float, int 等等

在画图前要决定各种属性:

注意:

– arc 的 start 如果是0,就从 x 轴正方向开始画。但是,弧度是顺时针算的!因为 y 轴是向下增长!

– 补充 radians() 和 degrees() 函数用来快速转换弧度和角度

fill(r, g, b); // 填充颜色

stroke(0, 255, 0);  // 边框颜色
strokeWeight(3);  // 边框/线条粗细
strokeJoin(size);  // 顶点尖的地方,边框会缺角,缺角大小和 size 相关
strokeCap(size);  // 

noStroke(); // 无边框。上三行效果作废
noFill(); // 同理,第一行作废
/* Vertex Form 以顶点为参数*/
point(x, y);
line(x1, y1, x2, y2);
triangle(x1, y1, x2, y2, x3, y3);
quad(x1, y1, x2, y2, x3, y3, x4, y4);

/* Point-Stretch Form 顶点和”展开“作参数*/
rect(x, y, width, height);
ellipse(x, y, width, height);

/* 按照直角坐标系决定要那一边的弧 */
// start, stop in radian
arc(x, y, width, height, start, stop);  

/* start, stop in degree */
float degree = PI / 180;
arc(x, y, width, height, start*degree, stop*degree); 

/* free hand */
beginShape();
vertex(x, y);
...
endShape();
 

生命周期

所有的 void 函数都是会被系统调用的

当然你可以直接写在最外层,但是你写的代码会在 setup() 之前被执行(无论你写在哪里),所以除了声明变量以外的语句大概都不会生效。

魔法变量速记

在这里,把一些全局可用的变量叫做魔法变量,借用 Python 的叫法。系统每过一 frame 都会更新魔法变量。

魔法方法(事件监听器)速记

监听器独立于 draw() 主线而存在,如生命周期所属。系统每一帧会自动检测 mousePressed 一类变量,并根据这些变量的值,来执行监听器(监听器的函数不会被 Loop 执行,独立于 draw() 存在)

– mousePressed

– mouseReleased

– mouseMoved

– mouseDragged

Leave a comment

Your email address will not be published. Required fields are marked *