Processing学习

作者: kumakiti | 来源:发表于2015-03-11 23:19 被阅读2922次

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

    }

    }

    相关文章

      网友评论

        本文标题:Processing学习

        本文链接:https://www.haomeiwen.com/subject/dckbxttx.html