Daily Creative Coding

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

二点透視図法

/**
 * two-point perspective
 * 
 * @author aadebdeb
 * @date 2017/02/21
 */

function setup() {
  createCanvas(windowWidth, windowHeight);
  background(255);
  stroke(200);
  strokeWeight(1);
  frameRate(1);
}

function draw() {
  var w = random(width / 8, width * 7 / 8);
  var leftLerp = random(0.1, 0.9);
  var rightLerp = random(0.1, 0.9);
  var upperH = random(-height / 2, 0);
  var lowerH = map(abs(width / 2 - w), 0, width / 2, height * 1 / 4, 0);
  var hueV = random(360);
  translate(0, height * 2 / 3);
  fill(randomGaussian(250, 2));
  beginShape();
  vertex(lerp(0, w, leftLerp), lerp(0, upperH, leftLerp));
  vertex(w, upperH);
  vertex(w, lowerH);
  vertex(lerp(0, w, leftLerp), lerp(0, lowerH, leftLerp));
  endShape(CLOSE);
  fill(randomGaussian(240, 2));
  beginShape();
  vertex(lerp(w, width, rightLerp), lerp(upperH, 0, rightLerp));
  vertex(w, upperH);
  vertex(w, lowerH);
  vertex(lerp(w, width, rightLerp), lerp(lowerH, 0, rightLerp));
  endShape(CLOSE);
}
f:id:aa_debdeb:20170219205425j:plain