Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void stampajVektor(PVector v){
- println("(" + v.x + ", " + v.y + ")");
- }
- class Lopta{
- PVector polozaj;
- float duzina0;
- float duzina;
- float koef;
- float masa;
- float alfa;
- PVector opruznaSila;
- PVector brzina;
- PVector ubrzanje;
- Lopta(float mas, float duz, float koeff){
- brzina = new PVector(0, 0);
- ubrzanje = new PVector(0, 0);
- masa = mas;
- duzina0 = duz;
- duzina = duzina0;
- polozaj = new PVector(width/2, duzina);
- koef = koeff;
- alfa = 0;
- opruznaSila = new PVector(0, 0);
- };
- void izrOpruznuSilu(){
- float ox = koef*(duzina-duzina0)*sin(alfa);
- float oy = -1*koef*(duzina-duzina0)*cos(alfa);
- opruznaSila.set(ox, oy);
- }
- void prikazi(){
- stroke(0);
- fill(255, 255, 255, 100);
- ellipse(polozaj.x, polozaj.y, masa, masa);
- stroke(255, 0, 72);
- strokeWeight(2);
- line(width/2, 0, polozaj.x, polozaj.y);
- stroke(0);
- fill(0);
- text(duzina, 100, 100);
- text(alfa, 200, 100);
- stroke(0);
- fill(0);
- strokeWeight(1);
- line(polozaj.x, polozaj.y, polozaj.x + 2*brzina.x, polozaj.y + 2*brzina.y);
- };
- void promeniUgao(){
- alfa = atan((polozaj.x-width/2) / duzina);
- };
- void pomeri(PVector novi){
- polozaj = PVector.add(novi, new PVector(width/2, 0));
- duzina = novi.mag();
- stampajVektor(novi);
- println(duzina);
- promeniUgao();
- izrOpruznuSilu();
- };
- void update(){
- brzina.add(ubrzanje);
- //polozaj.add(brzina);
- pomeri(PVector.add(polozaj, brzina));
- ubrzanje.mult(0);
- izrOpruznuSilu();
- }
- void primeniSilu(PVector sila){
- ubrzanje.add(PVector.mult(sila, 1/masa));
- };
- };
- PVector gravitacija;
- Lopta l;
- void setup(){
- size(1024, 500);
- gravitacija = new PVector(0,77);
- l = new Lopta(100, 300, 0.1);
- };
- void draw(){
- background(200, 255, 255);
- l.primeniSilu(gravitacija);
- l.primeniSilu(l.opruznaSila);
- //l.pomeri(PVector.add(l.polozaj, l.brzina));
- l.update();
- l.prikazi();
- };
- void mouseClicked(){
- l.pomeri(new PVector(mouseX-width/2, mouseY));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement