Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import controlP5.*; // biblioteca da interface
- float t = 0.5;
- float xp, yp; // x e y de P
- ControlP5 cp5;
- boolean Limpar;
- float Traco = 2;
- float XP2;
- float YP2;
- float p1=radians(0); //fase
- float f1=4; // frequencia
- float a1=150; // amplitude
- float d1=0; // amortecimento
- float a2=150;
- float p2=radians(0);
- float f2=5;
- float d2=0;
- float a3=150;
- float p3=radians(0);
- float f3=5;
- float d3=0;
- float a4=150;
- float p4=radians(0);
- float f4=3;
- float d4=0;
- float taxa_amort = 0.008;
- void setup() {
- size(900, 800);
- background(0);
- frameRate(60);
- d1 = taxa_amort ; // incrementa amortecimento dos pêndulos
- d2 = taxa_amort ;
- d3 = taxa_amort ;
- d4 = taxa_amort ;
- frameRate(60);
- cp5 = new ControlP5(this);
- boolean toggleValue = false;
- cp5.addToggle("Limpar")
- .setPosition(20, 20)
- .setSize(50, 20)
- .setValue(false);
- cp5.addSlider("Traco")
- .setPosition(10, 750)
- .setSize(120, 40)
- .setRange(1, 4);
- }
- void draw() {
- XP2=DesenhaXP ( a1, p1, f1, d1, a2, p2, f2, d2 );
- YP2=DesenhaYP ( a3, p3, f3, d3, a4, p4, f4, d4 );
- t += 0.02; // espaçamento
- stroke(255);
- strokeWeight(Traco);
- strokeCap(ROUND);
- line(XP2, YP2, DesenhaXP( a1, p1, f1, d1, a2, p2, f2, d2), DesenhaYP( a3, p3, f3, d3, a4, p4, f4, d4 ));
- if (Limpar==true) {
- background(0);
- Limpar=false;
- }
- }
- // DESENHA P
- float DesenhaXP ( float A1, float P1, float F1, float D1, float A2, float P2, float F2, float D2 ) {
- xp=450+A1*sin(t*F1+P1)*exp(-1*D1*t)+A2*sin(t*F2+P2)*exp(-1*D2*t);
- return xp;
- }
- float DesenhaYP ( float A3, float P3, float F3, float D3, float A4, float P4, float F4, float D4 ) {
- yp=350+A3*sin(t*F3+P3)*exp(-1*D3*t)+A4*sin(t*F4+P4)*exp(-1*D4*t);
- return yp;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement