Comutare navigație
pbInfo.ro
Probleme
Probleme - clasa a IX-a
Probleme - clasa a X-a
Probleme - clasa a XI-a
Probleme din concursuri
Căutare problemă
Exerciții
Programează cu Blockly
Desenează cu Processing
Exersează SQL
Soluţii
Resurse
Resurse pentru clasa a IX-a
Resurse pentru clasa a X-a
Resurse pentru clasa a XI-a
Subiecte bacalaureat
Ajutor
Autentificare
Înregistrare
×
Autentificare
Utilizator sau email
Parola
Acest site foloseşte cookies. Navigând în continuare, vă exprimaţi acordul asupra folosirii cookie-urilor.
Îti place pbInfo? Atunci acceptă-l cu totul! Dezactivează modulul de blocare a reclamelor!
×
Lista scripturi
Script Nou
Ajutor
"Bara Metalica... sau ceva (aka spaghetti code)" - Processing
ID
Autor
Duplicat din
Ultima modificare
#3445
Takacs Robert (RoTak)
-
Miercuri, 04 dec 2019, 20:02
function dist(x1, y1, x2, y2) { let dx = x1 - x2; let dy = y1 - y1; return sqrt(dx*dx + dy*dy); } class Slider { constructor() { this.fixedX = 200; this.fixedY = 200; this.radius = 150; this.strokeWeight = 50; this.x = this.fixedX + this.radius; this.y = this.fixedY; } show() { strokeWeight(this.strokeWeight); stroke("#675F5F"); line(this.fixedX, this.fixedY, this.x, this.y); } mouseOnThis() { let mx = mouseX; let my = mouseY; let d1 = dist(this.fixedX, this.fixedY, mx, my); let d2 = dist(mx, my, this.x, this.y); if(d1 + d2 - (this.radius + this.strokeWeight / 2) < sqrt(this.strokeWeight) - 10) return 1; return 0; } update(val1, val2) { this.x = this.fixedX + this.radius * val1; this.y = this.fixedY + this.radius * val2; } } let s = new Slider(); let angle = 0; let clickedAndOnThis = false; let didNotClickOnThis = false; function setup() { createCanvas(400, 400); angleMode(RADIANS); } function draw() { background(0); s.update(cos(angle), sin(angle)); s.show(); if(mouseIsPressed && (s.mouseOnThis() || clickedAndOnThis) && !didNotClickOnThis) { angle = atan2(mouseY - s.fixedY, mouseX - s.fixedX); } else if(mouseIsPressed) { didNotClickOnThis = true; } console.log(angle * 180 / PI); } function mousePressed() { if(s.mouseOnThis()) { clickedAndOnThis = true; } } function mouseReleased() { clickedAndOnThis = false; didNotClickOnThis = false; }
Duplicare
Executare
Cod
×
Cod HTML
<iframe sandbox="allow-scripts" src="/p5js/index.php?id=3445" style="width:408px; height:408px;border:solid 1px gray; overflow: scroll;"></iframe>
×
Duplicare script
Denumirea noului script
Du-te sus!