【processing】小代码3

鼠标响应: mouseX, mouseY 鼠标的坐标

----------------------------------------------

void setup()
{
  size(300,300);
  smooth();
  background(200);
}

void draw()
{
  fill(255,255,0);
  rectMode(CENTER);
  rect(mouseX,mouseY,50,50);
}

随着鼠标的移动画方块

-----------------------------------------------------

dist(x1,y1,x2,y2) 计算两点之间的距离

void setup()
{
  size(300,300);
  smooth();
}

void draw()
{
  background(200);
  stroke(0);
  float d = dist(mouseX, mouseY,150,150);
  strokeWeight(d/15);
  fill(255);
  ellipse(150,150,d*2,d);
  strokeWeight(d/20);
  fill(255,200,0);
  ellipse(150,150,d,d);
  fill(0);
  noStroke();
  ellipse(150,150,d/3,d/3);
}

眼睛的大小会随着鼠标位置改变

------------------------------------------------------------------

pmouseX,pmouseY: 鼠标的上一个坐标点

void setup()
{
  size(300,300);
  strokeWeight(5);
  smooth();
  stroke(255,0,80,100);
  background(0);
}
void draw()
{
  line(mouseX,mouseY,pmouseX,pmouseY);
}

画出鼠标的轨迹

---------------------------------------------------------

鼠标响应事件

void mousePressed(){} 等价于 void draw(){if(mousePressed){}}

void mouseMoved(){}

void mouseDragged(){}

void setup()
{
  size(600,300);
  smooth();
  background(125,0,255,100);
}
void draw()
{
  if(mousePressed)
  {
    stroke(0);
    fill(255,255,0);
    ellipse(mouseX,mouseY,25,25);
  }
}

鼠标按下时画圆,一直按着不放就一直画圆 不要边框后更好看些

-------------------------------------------------------------------------------------------

void setup()
{
  size(300,300);
  smooth();
  background(125,0,255,100);
}
void draw()
{
}
void mouseMoved()
{
  stroke(255,255,0,100);
  rectMode(CENTER);
  fill(255,255,0,50);
  rect(mouseX,mouseY,50,50);
}
void mouseDragged()
{
  stroke(255,200,0,100);
  fill(255,100,0,50);
  ellipse(mouseX,mouseY,50,50);
}

鼠标移动画方,鼠标拖动画圆

-------------------------------------------------------------

mouseButton  含 LEFT, RIGHT, CENTER

void setup()
{
  size(300,300);
  smooth();
  background(204);
  rectMode(CENTER);
}

void draw()
{
  if(mousePressed)
  {
    if(mouseButton == LEFT)
    {
      fill(255);
    }
    else if(mouseButton==CENTER)
    {
      fill(0);
    }
    else
    {
      fill(100);
    }
    rect(mouseX,mouseY,50,50);
  }
}

按下鼠标不同键颜色不同

--------------------------------------------------------

键盘响应:

keyPressed 按键响应 void keyPressed(){} 或 void draw(){if(keyPressed){}}

key 特定键响应 在keyPressed基础上加 if(key == ‘a‘)

keyCode 功能键响应 包括 ALT, CONTROL, SHIFT,UP,DOWN,LEFT,RIGHT

int x = 150;
int y = 150;
void setup()
{
  size(300,300);
  smooth();
  background(204);
  rectMode(CENTER);
}
void draw()
{
  if(keyPressed && (key == CODED))
  {
    if(keyCode == LEFT)
    {
      x--;
    }
    else if(keyCode == RIGHT)
    {
      x++;
    }
    else if(keyCode == UP)
    {
      y--;
    }
    else if(keyCode == DOWN)
    {
      y++;
    }
  }
  ellipse(x,y,50,50);
}

---------------------------------------------------------------

随机:random(10) 生成0-10的任意浮点数

int(random(6,10)), 生成6 7 8 9中任意一个数

void setup()
{
  size(300,300);
  smooth();
  background(255);
  stroke(0,120);
  colorMode(HSB,360,100,100);
}
void draw()
{
  float d = random(50);
  fill(random(360),100,100,100);
  ellipse(random(300),random(300),d,d);
}

-------------------------------------------------------

限制 constrain(value,min,max); 限制value值在min-max范围内

int x = 150;
int y = 150;
void setup()
{
  size(300,300);
  smooth();
}
void draw()
{
  background(127);
  fill(255);
  rect(50,50,200,200);
  fill(127);
  rect(100,100,100,100);
  float mx = constrain(mouseX,70,230);
  float my = constrain(mouseY,70,230);
  fill(0);
  ellipse(mx,my,40,40);
}

时间: 2024-08-08 03:56:22

【processing】小代码3的相关文章

【processing】小代码

今天无意间发现的processing 很有兴趣 实现很简洁 void setup(){ } void draw(){ background(255); if(mouseX < width/2 && mouseY > height/2) { fill(0); rect(0,height/2,width/2,height/2); } } 这个小小的代码可以实现 当鼠标位于画布左下方时显示一个黑色的框 -----------------------------------------

iOS开发中一些有用的小代码

1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&qu

Js 常用小代码

//判断一个汉子等于两个字符 function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { var a = val.charAt(i); if (a.match(/[^\x00-\xff]/ig) != null) { len += 2; } else { len += 1; } } return len; } Js 常用小代码

小代码 &nbsp; 密码转置 **级 &nbsp; &nbsp; 复习aito ASCII 码值

/**************** WZ  ASUST  2016 写小代码 就是练习小心吧 *****************/ int main() { int x=1,i,j,k; char s;char ss[20]="zZ+_+_+{}{}{}"; cout<<"start:"<<ss<<endl; for(i=0;i<strlen(ss);i++) { if((ss[i]>64&&ss[i]

一段小代码说明@property装饰器的用法

#coding:utf-8 """ 一段小代码说明@property装饰器的用法.__name是私有变量 外部不能通过foo.__name访问,但可以通过foo._Foo__name访问. 如果想通过点运算符设置和访问实例属性怎么办,@property派上用途了, 先将一个方法头上加上@property,这个方法就变成实例属性了,再加上这个@get_name.setter 装饰器(@属性名.setter)就可以通过赋值来设置属性. python北京周末培训班 https://

JavaScript自己模仿jQuery的一点小代码

function seter(sId) {    var obj = document.getElementById(sId);    return new function () {        var objN = obj;        this.html = function (sHtml) {            objN.innerHTML = sHtml;        };    };} 这样的代码有怎样的作用呢? 假如HTML代码中有如下的内容: <div id="S

【processing】小代码4

translate(x,y);  移动坐标原点到x,y处 rotate(angle); 坐标沿原点顺时针转动angle度 scale(n); 绘制图像放大n倍 pushMatrix() 将当前坐标压入栈 popMatrix() 将坐标弹栈 -------------------------------------- windows系统下 用P3D一直报错,检查的时候还把之前写好的东西给弄没了  郁闷 换linux 终于可以显示了 但是smooth()不能用,说我硬件不支持. 而且linux下写的

【processing】小代码5

3D void setup() { size(500,500,P3D); } void draw() { background(0); lights(); noStroke(); translate(250,400,-500); rotateY(PI/6); box(500,100,500); translate(0,150,0); box(500,100,500); translate(0,-400,100); sphere(200); } --------------------------

【processing】小代码2

函数: 绘制直线自由图形: beginShape(), vertex(), endShape() 分别是绘制图形开始,连接图形的节点,绘制结束 endShape(CLOSE)表示闭合图形. 绘制曲线边框自由图形: beginShape() 开始绘制 vertex() 图形起始端点 bezierVertex(cx1,cy1,cx2,cy2,x,y) 曲线 cx1,cy1,cx2,cy2为第一和第二个控制点坐标 x,y为结束端点坐标 endShape() 颜色:关键在括号后面有几个值 灰阶: