SHARE
TWEET

Untitled

a guest May 22nd, 2019 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. void stampajVektor(PVector v){
  3.     println("(" + v.x + ", " + v.y + ")");
  4. }
  5.  
  6. class Lopta{
  7.     PVector polozaj;
  8.     float duzina0;
  9.     float duzina;
  10.     float koef;
  11.     float masa;
  12.     float alfa;
  13.  
  14.     PVector opruznaSila;
  15.  
  16.     PVector brzina;
  17.     PVector ubrzanje;
  18.  
  19.     Lopta(float mas, float duz, float koeff){  
  20.         brzina = new PVector(0, 0);
  21.         ubrzanje = new PVector(0, 0);
  22.         masa = mas;
  23.         duzina0 = duz;
  24.         duzina = duzina0;
  25.         polozaj = new PVector(width/2, duzina);
  26.         koef = koeff;
  27.         alfa = 0;
  28.         opruznaSila = new PVector(0, 0);
  29.     };
  30.  
  31.     void izrOpruznuSilu(){
  32.         float ox = koef*(duzina-duzina0)*sin(alfa);
  33.         float oy = -1*koef*(duzina-duzina0)*cos(alfa);
  34.         opruznaSila.set(ox, oy);
  35.     }
  36.  
  37.     void prikazi(){
  38.         stroke(0);
  39.         fill(255, 255, 255, 100);
  40.         ellipse(polozaj.x, polozaj.y, masa, masa);
  41.  
  42.         stroke(255, 0, 72);
  43.         strokeWeight(2);
  44.         line(width/2, 0, polozaj.x, polozaj.y);
  45.  
  46.         stroke(0);
  47.         fill(0);
  48.         text(duzina, 100, 100);
  49.         text(alfa, 200, 100);
  50.  
  51.         stroke(0);
  52.         fill(0);
  53.         strokeWeight(1);
  54.         line(polozaj.x, polozaj.y, polozaj.x + 2*brzina.x, polozaj.y + 2*brzina.y);
  55.     };
  56.  
  57.     void promeniUgao(){
  58.         alfa = atan((polozaj.x-width/2) / duzina);
  59.     };
  60.  
  61.     void pomeri(PVector novi){
  62.         polozaj = PVector.add(novi, new PVector(width/2, 0));
  63.         duzina = novi.mag();
  64.         stampajVektor(novi);
  65.         println(duzina);
  66.         promeniUgao();
  67.  
  68.         izrOpruznuSilu();
  69.     };
  70.  
  71.     void update(){
  72.         brzina.add(ubrzanje);
  73.         //polozaj.add(brzina);
  74.         pomeri(PVector.add(polozaj, brzina));
  75.         ubrzanje.mult(0);
  76.  
  77.         izrOpruznuSilu();
  78.     }
  79.  
  80.     void primeniSilu(PVector sila){
  81.         ubrzanje.add(PVector.mult(sila, 1/masa));
  82.     };
  83.  
  84. };
  85.  
  86.  
  87. PVector gravitacija;
  88. Lopta l;
  89.  
  90. void setup(){
  91.     size(1024, 500);
  92.     gravitacija = new PVector(0,77);
  93.     l = new Lopta(100, 300, 0.1);
  94. };
  95.  
  96.  
  97. void draw(){
  98.     background(200, 255, 255);
  99.    
  100.     l.primeniSilu(gravitacija);
  101.     l.primeniSilu(l.opruznaSila);  
  102.     //l.pomeri(PVector.add(l.polozaj, l.brzina));
  103.     l.update();
  104.     l.prikazi();
  105.  
  106.  
  107. };
  108.  
  109. void mouseClicked(){
  110.     l.pomeri(new PVector(mouseX-width/2, mouseY));
  111. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top