Advertisement
tiodocomputador

Vetorizacao do mouse

Sep 19th, 2014
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.53 KB | None | 0 0
  1. //CYBEROHM.COM
  2.  
  3. void setup()
  4. {
  5.   size(800, 600);
  6. }
  7.  
  8. void draw()
  9. {
  10.   int a = 100; //raio da elipse principal
  11.   int factor = 4; //fator de razão entre as elipses
  12.   int origem = 100; //Origem do plano cartesiano
  13.   float dX = mouseX-origem;
  14.   float dY = -(mouseY-origem);
  15.   int TEXTO = 14;
  16.  
  17.  
  18.   background(255); //cor de fundo
  19.   strokeWeight(5);
  20.   //círculo central
  21.   stroke(0, 0, 255);
  22.   if (mousePressed)
  23.   {
  24.     fill(255, 0, 0);
  25.     background(0); //muda a cor de fundo
  26.   } else
  27.   {
  28.     fill(0, 200, 0);
  29.   }
  30.  
  31.   //circulo do mouse
  32.   ellipse(origem, origem, a, a);
  33.   stroke(0);
  34.   if (mousePressed)
  35.   {
  36.     fill(0, 200, 0);
  37.   } else
  38.   {
  39.     fill(255, 0, 0);
  40.   }
  41.  
  42.   //cruz do mouse
  43.   strokeWeight(2);
  44.   ellipse(mouseX, mouseY, a/factor, a/factor);
  45.   line((mouseX-(a/factor)), mouseY, (mouseX+(a/factor)), mouseY);
  46.   line(mouseX, (mouseY-(a/factor)), mouseX, (mouseY+(a/factor)));
  47.  
  48.   //linha de direção  
  49.   stroke(#FF8000);
  50.   strokeWeight(3);
  51.  
  52.   line(origem, origem, mouseX, mouseY);
  53.  
  54.   //Fundo do relógio
  55.   stroke(0);
  56.   fill(0);
  57.   rect(0, 3*height/4-20, width, width/4+20);
  58.  
  59.   //Relogio X
  60.   noStroke();
  61.   fill(255);
  62.   textSize(TEXTO);
  63.   textAlign(LEFT, CENTER);
  64.   text("dx= "+Float.toString(dX), width/2, 3*height/4);
  65.  
  66.   //Relogio Y
  67.  
  68.   noStroke();
  69.   fill(255);
  70.   textSize(TEXTO);
  71.   textAlign(LEFT, CENTER);
  72.   text("dy= "+Float.toString(dY), width/2, 3*height/4+20);
  73.  
  74.   //Relogio principal
  75.   float D = sqrt(pow((dX), 2)+pow((dY), 2));
  76.   noStroke();
  77.   fill(255);
  78.   textSize(TEXTO);
  79.   textAlign(LEFT, CENTER);
  80.   text("D= "+Float.toString(D), width/2, 3*height/4+40);
  81.  
  82.   //Relogio de coordenadas
  83.   if (dY != 0)
  84.   {
  85.     float alpha = (dX/dY);
  86.     noStroke();
  87.     fill(255);
  88.     textSize(TEXTO);
  89.     textAlign(LEFT, CENTER);
  90.     text("alpha= "+Float.toString(alpha), width/2, 3*height/4+60);
  91.     //Equação da reta
  92.     text("y= "+Float.toString(alpha*dX)+"x", width/2, 3*height/4+80);
  93.   } else
  94.   {
  95.     noStroke();
  96.     fill(255);
  97.     textSize(TEXTO);
  98.     textAlign(LEFT, CENTER);
  99.     text("alpha= NON EKZISTE!!!", width/2, 3*height/4+60);
  100.     text("y= 0", width/2, 3*height/4+80);
  101.   }
  102.  
  103.   //E finalmente a porra do relogio final!
  104.   if (dY != 0)
  105.   {
  106.     float beta = asin(dY/D);
  107.     noStroke();
  108.     fill(255);
  109.     {
  110.       if (beta >= 0 && beta <= PI/2)
  111.       {
  112.         arc((origem), (origem), (a-5), (a-5), 0, (beta+PI/2));
  113.         textSize(TEXTO);
  114.         textAlign(LEFT, CENTER);
  115.         text("beta= "+Float.toString(degrees(beta)), width/2, 3*height/4+100);
  116.       }
  117.     }
  118.   }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement