xxxxxxxxxx
const PI_2 = Math.PI * 2;
var sides = 14,
radio = 380,
the_sides = [];
var mouse, to;
function setup() {
createCanvas(1112, 834);
background(0);
colorMode(HSB);
strokeWeight(2);
windowResized();
}
function mouseMoved() {
to = {
x: mouseX,
y: mouseY
}
}
function windowResized() {
resizeCanvas(1112, 834);
radio = height/2.2;
to = mouse = {
x: width / 2,
y: height / 2
}
the_sides = [];
var angle = PI_2 / sides;
for (var i = 0; i < sides; i++) {
var _angle = angle * i;
the_sides.push({
x: sin(_angle),
y: cos(_angle)
});
}
}
function draw() {
mouse.x += (to.x - mouse.x) * 0.05;
mouse.y += (to.y - mouse.y) * 0.05;
var time = new Date().getTime() * 0.001;
background("rgba(0,0,0,0.3)");
translate(mouse.x, mouse.y);
noFill();
for (var k = 0; k < sides; k++) {
var vertex = [];
for (var i = 0; i < the_sides.length; i++) {
var factor = abs(sin((time / 2) + k + i) * radio);
var vtx = the_sides[i];
var x = vtx.x * factor,
y = vtx.y * factor;
vertex.push({
x: x,
y: y
});
}
stroke(~~(abs(cos(k + time)) * 360), 255, 255);
blob(vertex);
}
}
function blob(vertex) {
beginShape();
curveVertex(vertex[vertex.length - 1].x, vertex[vertex.length - 1].y);
for (var i = 0; i < vertex.length; i++) {
var vtx = vertex[i];
curveVertex(vtx.x, vtx.y);
}
curveVertex(vertex[0].x, vertex[0].y);
curveVertex(vertex[1].x, vertex[1].y);
endShape();
}
function keyPressed(){
save('pix.jpg');
}