Factory
What
ランダムに6方向へ動くパイプを描きました。
前後左右へは、x方向へ長さの`Math.sqrt(3) /2`倍、y方向へ長さの`0.5`倍移動させることで、立体のように見えます。
また、時間経過により彩度も上がってくるので、初期の描画が暗く、だんだん明るくなっている点も立体的に見せるポイントです。
How
var w = 300;
var h = 300;
var lines = new Array(20);
var d = 30;
var sdx = d * Math.sqrt(3) /2;
var sdy = d /2;
var directions = [[0,d],[0,-d], [sdx,sdy],[-sdx,sdy],[sdx,-sdy],[-sdx,-sdy]];
var drawing = true;
function setup() {
createCanvas(w, h);
background(255);
for(i=0;i < lines.length;i++){
lines[i] = [random(w), random(h), random(100)];
}
}
function draw() {
//noLoop();
//noStroke();
background(0,0.5);
push();
colorMode(HSB, 100);
for(i=0;i < lines.length;i++){
var d = random(directions);
var newX = lines[i][0] + d[0];
var newY = lines[i][1] + d[1];
strokeCap(SQUARE);
strokeWeight(8);
stroke(color(lines[i][2],0,0));
line(lines[i][0], lines[i][1], newX, newY);
strokeCap(ROUND);
strokeWeight(7);
stroke(color(lines[i][2],100,frameCount / 5));
line(lines[i][0], lines[i][1], newX, newY);
lines[i][0] = newX;
lines[i][1] = newY;
}
pop();
}
function mouseClicked(){
if(drawing){
noLoop();
drawing = false;
}else{
loop();
drawing = true;
}
}