Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement