processing学习Processing

Processing学习

2015-03-11  本文已影响2922人  kumakiti

“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);

}

}

上一篇下一篇

猜你喜欢

热点阅读