xxxxxxxxxx
67
let x = 0,
index = 1,
angle = 0,
buttonAlpha = 20,
mode, number, angleIncrement, sizeIncrement, txtSize;
function parameters() {
mode = confirm("Point or line mode? (OK for point, Cancel for line)");
number = Number(prompt("Enter number to test:"));
angleIncrement = Number(prompt("Enter angle increment:"));
zoom = confirm("Do you want a custom zoom?");
if(zoom) sizeIncrement = Number(prompt("Enter zoom level:"));
else sizeIncrement = 240/number;
txtSize = 30;
angle = 0;
}
function setup() {
createCanvas(800, 800);
background(0);
parameters();
}
function draw() {
// Num and Angle text
textSize(txtSize);
fill(255);
noStroke();
text("Num: " + number.toString(), 10, txtSize + 5);
text("Angle: " + angleIncrement.toString(), 10, txtSize * 2 + 10);
// Mechanism
x += index * sizeIncrement;
angle += angleIncrement;
if (x >= number * sizeIncrement) index = -1;
if (x <= 0) index = 1;
// Alpha of the points/lines
let lineAlpha = mode ? 255 : 40;
// Drawing the points/lines
stroke(255, lineAlpha);
fill(255, lineAlpha);
translate(width / 2, height / 2);
rotate(radians(angle));
if (mode) ellipse(x, x, 2);
else if (!mode) line(0, 0, x, x);
}
let paused = false;
function mouseClicked() {
if (!paused) {
frameRate(0);
paused = true;
} else if (paused) {
frameRate(1000000000);
paused = false;
}
}