Processing学习

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

工作太忙,停止Processing学习太久,重新复习下笔记,再次开始。Processing中文教材不多,推荐一本入门级教材《Processing互动编程艺术》,边学边Processing.org熟悉语法和例子。

基本图形:

point(x1,y1)

line(x1,y1,x2,y2)

triangle(x1,y1,x2,y2,x3,y3)

quad(x1,y1,x2,y2,x3,y3,x4,y4)

rect(x,y,width,height,r,tl,tr,br,bl)

ellipse(x,y,width,height)

arc(x,y,width,height,start,stop),arc(x,y,width,height,radians(45),radians(225));

填充和描边:

fill() 填充颜色,noFill()禁用填充颜色

stroke()描边颜色,noStroke()禁用描边

strokeWeight()  定义画笔粗细

strokeJoin()定义线与线之间的连接模式(衔接角的形状): strokeJoin(ROUND)圆形转角,strokeJoin(BEVEL)锥形转角

rectMode(),http://processing.org/reference/rectMode_.html

ellipseMode(),

strokeCap()定义线的起始与终止的画法:strokeCap(SQUARE)方头线,strokeCap(ROUND)圆头线

颜色以及透明度:

background(r,g,b,alpha)、fill(r,g,b,alpha)、stroke(r,g,b,alpha)描边颜色

自定义图形:

beginShape() 开始自定义图形,endShape()结束图形定义,endShape(CLOSE)闭合图形

vertex()定义点坐标

基本语法:

while

while(条件式){

绘制函数;//符合条件,程序继续循环执行括号内指令并计数,不符合条件则停止

计数器;

}

if

if(条件判断){

//满足的话,则执行此区域代码

}

if(条件判断){

//满足的话,则执行此区域代码

}else{

//不满足的话,则执行此区域代码

}

if(条件判断){

//满足的话,则执行此区域代码

}else if(条件判断2){

//满足条件2的话,则执行此区域代码

}else{

//都不满足的话,则执行此区域代码

}

for-loop

for(init;test;update){

statements

}

for(初始化;条件判断;更新判断的数值){

满足条件的话,则执行此区域代码

}


响应:

1、draw()&setup()

2、鼠标响应--鼠标跟随:mouseX(保存着x轴的值)  mouseY(保存着y轴的值)

dist(x1,y1,x2,y2);//可用于计算两点之间距离

3、鼠标响应--连续作画:pmouseX和pmouseY存储着前一帧鼠标的位置

line(mouseX,mouseY,pmouseX,pmouseY); //可连续划线

dist(mouseX,mouseY,pmouseX,pmouseY); //可用于计算线条宽度

4、鼠标响应事件mousePressed()   mouseMoved()  mouseDragged()

4、键盘响应

keyPressed()

if(keyPressed) 中可加入if(keyPressed==‘a’)

if(keyPressed&&(key==CODED))  可加入if(keyCode==LEFT)

4、轻随(easing)

float x;

float easing=0.01;//easing值越小,延迟越大

float diameter=12;

void setup(){

size(220,120);

smooth();

}

void draw(){

float targetX=mouseX;

x+=(targetX-x)*easing;

ellipse(x,50,12,12);

println(targetX+":"+x);

}

5、映射(map)

void setup(){

size(240,120);

strokeWeight(12);

smooth();

}

void draw(){

background(204);

stroke(255);

line(120,60,mouseX,mouseY);

stroke(0);

float mx=map(mouseX,0,width,60,180);//第一个参数是一个需要转换的变量,第二和第三个分别是它的最小和最大值,第四和第五个参数是需要转换到的目的范围的最小值和最大值。

line(120,60,mx,mouseY);

}

5、点击(mousePressed) 只有2个值:真和假。鼠标按下为真。

追踪鼠标哪个键:mouseButton==LEFT、CENTER、RIGHT

void setup(){

size(240,120);

strokeWeight(30);

smooth();

}

void draw(){

background(204);

stroke(102);

line(40,0,70,240);

if(mousePressed){

if(mouseButton==LEFT){

stroke(255);

}else{

stroke(0);

}

line(0,70,width,50);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源: http://www.douban.com/group/topic/14820131/ 调整变量格式: f...
    MC1229阅读 7,013评论 0 5
  • (转自http://www.douban.com/group/topic/14820131/,转自人大论坛) 调整...
    f382b3d9bdb3阅读 10,845评论 0 8
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • 转载请声明 原文链接 关注公众号获取更多资讯 这篇文章主要总结H5的一些新增的功能以及一些基础归纳,这里只是一个提...
    前端进阶之旅阅读 9,124评论 22 225
  • 老李有五个儿子,一个女儿,都早已各自成家,离开老李。好在距离都不是很远,老二的家与他只有一墙之隔,老大和老三与他也...
    苔上雪你不再阅读 958评论 0 2