用Processing畫出一支「magic pen」

該畫筆當快速劃過的時候,畫筆的線條變粗,慢慢劃過的時候,線條變細。
主要經過下面的speed實現,x是mouseX,y是mouseY,px是pmouseX,py是pmouseY, 也就是和當前這一幀鼠標的位置以及前一幀鼠標的位置。滑動地越快,兩點距離越大,因此strokeWeight也就越大。spa

float speed = abs(x-px) + abs(y-py);
 strokeWeight(speed);

全部代碼:code

int count=0;
int increment=1;
void setup()
{
  size(640, 360);
  background(255);
  fill (255,255,255);
  smooth();
}

void draw() {
  drawLine(mouseX, mouseY, pmouseX, pmouseY);
}

void drawLine(int x, int y, int px, int py) {
if (mousePressed==true) {
  count=count+increment; 
}

if (count>25){
  increment = -1;
}
if (count<=0){
  increment = 1;
}
  float speed = abs(x-px) + abs(y-py);
  strokeWeight(speed);
  line(x, y, px, py);
  stroke(count*3,count*8,count*10);
}

void keyPressed(){
  if (key == ' '){
  background(255);
  }
}

4-2.gif

另外,當按住鼠標的時候,有個count變量一直在變化,影響到stroke,也就是畫筆顏色,當鬆開鼠標的時候,顏色就不會變化。rem

最後還添加了若是按下空格鍵,就清屏的代碼:it

void keyPressed(){
  if (key == ' '){
  background(255);
}
相關文章
相關標籤/搜索