xxxxxxxxxx
62
let lines = []; // Δημιουργώ πίνακα για τις γραμμές
let yellowAngle = 0; // Ορίζω την αρχική γωνία για την κίτρινη γραμμή
function setup() {
createCanvas(windowWidth, windowHeight);
background(0);
}
function draw() {
// Ανανέωση background κάθε φορά που εμφανίζονται 10 γραμμές
if (frameCount % 120 == 0) {
background(0);
lines = []; // Επαναφέρει τον πίνακα στην αρχική του κατάσταση. Κάνει reset.
}
// Ζωγραφίζει 10 γραμμές κάθε 2 δευτερόλεπτα σε τυχαία σημεία του καμβά.
if (frameCount % 120 == 0) {
for (let i = 0; i < 10; i++) {
let x1 = random(width);
let y1 = random(height);
let x2 = random(width);
let y2 = random(height);
stroke(255);
line(x1, y1, x2, y2);
lines.push({x1, y1, x2, y2}); // προσθέτει τις γραμμές στον πίνακα
}
}
// Δημιουργία και περιστροφή κίτρινης γραμμής
yellowAngle += 1;
stroke(255, 255, 0);
strokeWeight(3);
let x1 = 0;
let y1 = height/2;
let x2 = width;
let y2 = height/2;
let cx = mouseX;
let cy = mouseY;
let dx = cx - width/2;
let dy = cy - height/2;
let angle = atan2(dy, dx);
if (dist(cx, cy, width/2, height/2) < 50) {
yellowAngle = degrees(angle);
}
push();
translate(width/2, height/2);
rotate(radians(yellowAngle));
line(x1, y1, x2, y2);
pop();
}
//Κάνει fullscreen με το αριστερό κλικ
function mousePressed() {
let fs = fullscreen();
fullscreen(!fs);
}
//Κάνει responsive το script στο μέγεθος του καμβά
function windowResized() {
resizeCanvas(windowWidth, windowHeight);
background(0);
}