Daily Creative Coding

元「30 min. Processing」。毎日、Creative Codingします。

Processingで書道

マウスをゆっくりドラッグすると濃く太い線が,マウスを素早くドラッグすると薄く細い線が書ける.

キーボードのいずれかのキーをクリックすると,画面がクリアされる.

/**
* Calligraphy System
*
* Bold and dark line is drawn by dragging mouse slowly.
* Thin and light line is drawn by dragging mouse quickly.
* Drawn lines is cleared by clicking any keys.
*
* @author aa_debdeb
* @date 2015/09/10
*/

float MAX_WEIGHT = 15.0;
float BORDER_SPEED = 100.0;

void setup(){
  size(500, 500);
  smooth();
  frameRate(60);
  background(255);
}

void draw(){
  if(keyPressed){
    background(255);
  } else if(mousePressed){
    float mouseSpeed = sqrt(sq(mouseX - pmouseX) + sq(mouseY - pmouseY));
    drawLine(mouseSpeed);
  }
}

void drawLine(float mouseSpeed){
  if(mouseSpeed < BORDER_SPEED){
    stroke(0, 255.0 * (1.0 - (mouseSpeed / BORDER_SPEED)));
    strokeWeight(MAX_WEIGHT * (1.0 - (mouseSpeed / BORDER_SPEED)));
  } else {
    stroke(0);
   strokeWeight(MAX_WEIGHT); 
  }
  line(mouseX, mouseY, pmouseX, pmouseY);
}