xxxxxxxxxx
/***********************************
* dailycoding - 20250203 / graphic
* by E.C.H (Eiichi Ishii)
***********************************/
let num = 500;
let cp = [
"#44D800",
"#FF8C00",
"#7F00FF",
"#FF3800",
"#A7FC00",
"#AF0DD3",
"#FF2B67",
"#FFEB00",
"#00FFCE",
"#FF1DCE",
];
let w;
function setup() {
w = min(windowWidth, windowHeight);
createCanvas(w, w);
angleMode(DEGREES);
strokeCap(PROJECT);
strokeJoin(BEVEL);
rectMode(CENTER);
noLoop();
}
function draw() {
background(0);
for (let i = 0; i < num; i++) {
push();
translate(random(-w / 4, w + w / 4), random(-w / 4, w + w / 4));
rotate(int(random(4)) * 90);
let mr = random(w / 8, w / 4);
let v = random([10, 20]);
let rg = mr / v;
noStroke();
let ind = 0;
let mxsht = random([mr / 4, mr / 2]);
let ca = random(cp);
let cb = random(cp);
let sw = int(random(2));
while (ca == cb) {
cb = random(cp);
}
for (let r = mr; r >= 0; r -= rg) {
if (sw == 0) {
if (ind % 2 == 0) {
fill(ca);
} else {
fill(cb);
}
} else if (sw == 1) {
if (ind % 2 == 0) {
fill(random(60));
} else {
fill(random(120, 255));
}
}
let sht = map(r, mr, 0, 0, mxsht);
ellipse(random(-r / 8, r / 8), sht, mr, r);
ind++;
}
noFill();
push();
stroke(random([0, 255, random(cp)]));
let lr = random(mr / 40, mr / 10);
strokeWeight(lr);
drawingContext.shadowOffsetX = lr / 2;
drawingContext.shadowOffsetY = lr / 2;
drawingContext.shadowBlur = lr * 2;
drawingContext.shadowColor = "black";
if (int(random(2)) == 0) {
drawingContext.setLineDash([1, lr * 1.5]);
}
bezier(
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2),
random(-mr * 2, mr * 2)
);
pop();
stroke(random([0, 255]));
strokeWeight(mr / 140);
beginShape(TRIANGLE_STRIP);
for (let j = 0; j < 12; j++) {
vertex(random(-mr, mr), random(-mr, mr));
}
endShape();
if (int(random(2)) == 0) {
fill(random([0, 255]), 180);
noStroke();
rect(
random(-mr, mr),
random(-mr, mr),
random(mr / 3, mr * 2),
random(mr / 3, mr * 2)
);
}
pop();
}
let rw = w/10;
rakkan(rw/2.5, w-rw/1.25, rw, 0);
}
function rakkan(posx, posy, r, csw) {
push();
randomSeed(9146);
translate(posx, posy);
rectMode(CENTER);
let nr = r / 2.5;
let lr = r / 20;
if (csw == 0) {
fill("#e2041b");
noStroke();
} else if (csw == 1) {
noFill();
stroke("#e2041b");
strokeWeight(lr / 4);
}
rect(0, 0, r / 1.4, r * 1.5, r / 5);
if (csw == 0) {
stroke(255);
} else if (csw == 1) {
fill(255);
stroke("#e2041b");
}
strokeWeight(lr / 1.5);
noFill();
for (let i = 0; i < 10; i++) {
let z = random(lr / 20, lr / 2);
push();
push();
translate(0, -nr);
beginShape();
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(random(-z, z), nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), nr / 2 + random(-z, z));
endShape();
beginShape();
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(nr / 2 + random(-z, z), random(-z, z));
endShape();
pop();
push();
translate(0, 0);
beginShape();
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(random(-z, z), nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), nr / 2 + random(-z, z));
endShape();
strokeWeight(lr / 3);
beginShape();
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), nr / 2 + random(-z, z));
endShape();
pop();
push();
translate(0, nr);
beginShape();
vertex(-nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), nr / 2 + random(-z, z));
endShape();
beginShape();
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), nr / 2 + random(-z, z));
endShape();
beginShape();
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(nr / 2 + random(-z, z), random(-z, z));
endShape();
strokeWeight(lr / 3);
beginShape();
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), nr / 2 + random(-z, z));
endShape();
pop();
pop();
}
pop();
}
function keyPressed() {
redraw();
}