xxxxxxxxxx
67
// Kaleidoscope Snowflake
// The Coding Train / Daniel Shiffman
let symmetry = 6;
let angle = 360 / symmetry;
let saveButton;
let clearButton;
let slider;
let xoff = 0;
function setup() {
createCanvas(600, 600);
angleMode(DEGREES);
background(255,255,255);
saveButton = createButton('save');
saveButton.mousePressed(saveKaleidoscope);
clearButton = createButton('clear');
clearButton.mousePressed(clearCanvas);
slider = createSlider(1, 32, 4, 0.1);
//colorMode(HSB);
r = random(255);
g = random(255);
b = random(255);
}
function saveKaleidoscope() {
save('kaleidoscope.png');
}
function clearCanvas() {
background(255,255,255);
}
function draw() {
translate(width / 2, height / 2);
if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) {
let mx = mouseX - width / 2;
let my = mouseY - height / 2;
let pmx = pmouseX - width / 2;
let pmy = pmouseY - height / 2;
if (mouseIsPressed) {
let hu = map(sin(xoff), -1,1,0,255);
xoff += 1;
stroke(r,g,b);
let angle = 360 / symmetry;
for (let i = 0; i < symmetry; i++) {
rotate(angle);
//let d = dist(mx, my, pmx, pmy);
//let sw = map(d, 0, 16, 16, 2);
let sw = slider.value();
strokeWeight(sw);
line(mx, my, pmx, pmy);
push();
scale(1, -1);
line(mx, my, pmx, pmy);
pop();
}
}
}
}