Advertisement
tiodocomputador

16 relógios seguindo o vetor do mouse

Sep 20th, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.92 KB | None | 0 0
  1. //CYBEROHM.COM
  2.  
  3. void setup()
  4. {
  5.   size(1300, 640);
  6. }
  7.  
  8. void draw()
  9. {
  10.   cursor(CROSS);
  11.   int R = 100; //raio da elipse principal
  12.   int factor = 4; //fator de razão entre as elipses
  13.  
  14.   int origemX; //Origem do plano cartesiano em X
  15.   int origemY; //Origem do plano cartesiano em Y
  16.  
  17.     int TEXTO = 12;
  18.  
  19.   background(0); //cor de fundo
  20.   for (origemY = 100; origemY <= 600; origemY = origemY + 150) //Origem do plano cartesiano em Y
  21.   {
  22.     for (origemX = 100; origemX <= 1200; origemX = origemX + 300) //Origem do plano cartesiano em X
  23.     {
  24.       // Fundo do Dial
  25.       stroke(255);
  26.       strokeWeight(2);
  27.       fill(0, 80, 0);
  28.       ellipse(origemX, origemY, 100, 100);
  29.  
  30.       //Quadrantes do Dial
  31.       strokeWeight(2);
  32.       strokeCap(SQUARE);
  33.       stroke(0);
  34.       line(origemX, origemY-48, origemX, origemY+48);
  35.       line(origemX-48, origemY, origemX+48, origemY);
  36.  
  37.       //Origem do Dial
  38.       strokeCap(ROUND);
  39.       stroke(255);
  40.       strokeWeight(10);
  41.       point(origemX, origemY);
  42.  
  43.       // Linha de vetor
  44.       stroke(255, 70, 0);
  45.       strokeWeight(1);
  46.       line(origemX, origemY, mouseX, mouseY);
  47.  
  48.       // Vetores
  49.       float dX = (mouseX-origemX);
  50.       float dY = (mouseY-origemY);
  51.       float D = sqrt(pow((dX), 2)+pow((dY), 2));
  52.       noStroke();
  53.       fill(255);
  54.       textSize(TEXTO);
  55.       textAlign(LEFT, CENTER);
  56.       text("dx = "+Float.toString(dX), origemX+70, origemY-40);
  57.       text("dy = "+Float.toString(dY), origemX+70, origemY-20);
  58.       text("D  = "+Float.toString(D), origemX+70, origemY);
  59.  
  60.       //Quadrantes dos vetores:
  61.       if (dY != 0)
  62.       {
  63.         if ((dX/D > 0) && (dY/D > 0))
  64.         {
  65.           float derivada = dX/dY;
  66.           float alpha = degrees(asin(dX/D));
  67.           text("f'(x)= "+Float.toString(derivada), origemX+70, origemY+20);
  68.           text("α = "+Float.toString(alpha)+"º", origemX+70, origemY+40);
  69.         } else if ((dX/D > 0) && (dY/D < 0))
  70.         {
  71.           float derivada = dX/dY;
  72.           float alpha = 180 - degrees(asin(dX/D));
  73.           text("f'(x)= "+Float.toString(derivada), origemX+70, origemY+20);
  74.           text("α = "+Float.toString(alpha)+"º", origemX+70, origemY+40);
  75.         } else if ((dX/D < 0) && (dY/D < 0))
  76.         {
  77.           float derivada = dX/dY;
  78.           float alpha = 180 - degrees(asin(dX/D));
  79.           text("f'(x)= "+Float.toString(derivada), origemX+70, origemY+20);
  80.           text("α = "+Float.toString(alpha)+"º", origemX+70, origemY+40);
  81.         } else if ((dX/D < 0) && (dY/D > 0))
  82.         {
  83.           float derivada = dX/dY;
  84.           float alpha = 360 + degrees(asin(dX/D));
  85.           text("f'(x)= "+Float.toString(derivada), origemX+70, origemY+20);
  86.           text("α = "+Float.toString(alpha)+"º", origemX+70, origemY+40);
  87.         }
  88.       } else
  89.       {
  90.         text("f'(x) -> oo", origemX+70, origemY+20);
  91.         text("α = 90º", origemX+70, origemY+40);
  92.       }
  93.     }
  94.   }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement