xxxxxxxxxx
var gB, fullRes, windowRes;
var requiredFrames = 360;
function setup() {
windowRes = min(windowWidth, windowHeight);
createCanvas(windowRes, windowRes);
imageMode(CENTER);
gB = createGraphics(fullRes = 1024, fullRes);
gB.colorMode(HSB, 360);
initiate();
}
function initiate() {}
function randPow(multiplier, min, max, power) {
for (var i = 0; i < power; i += 1) {
multiplier *= random(min, max);
}
return multiplier;
}
function draw() {
gB.resetMatrix();
gB.translate(fullRes * 0.5, fullRes * 0.5);
var size = 2048;
for (var i = 0; i < size; i += 1) {
var distance = map(i, 0, size, 0, 1024) * sqrt(randPow(1, 0, 1, 1));
var theta = map(i, 0, size, 0, 16 * TAU) + randPow(1, -1, 1, 5);
gB.point(distance * cos(theta), distance * sin(theta));
}
background(360);
displayBuffer(gB);
}
function mouseClicked() {
initiate();
loop();
}
function keyPressed() {
if (key === "r") {
windowRes = 512;
resizeCanvas(512, 512);
saveGif('export', requiredFrames, {
delay: 0,
units: "frames"
});
}
if (key === "s") {
gB.save('output.png');
}
}
function displayBuffer(buffer) {
image(buffer, windowRes / 2, windowRes / 2, windowRes, windowRes);
}
function windowResized() {
windowRes = min(windowWidth, windowHeight);
resizeCanvas(windowRes, windowRes);
}