Rafpast

Management

Jan 14th, 2021
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.15 KB | None | 0 0
  1. void centralFieldManagement()
  2. {
  3.  
  4.   PVector grav_atract = new PVector(0, 0);
  5.   float dem = 0, dividerx = 0, dividery = 0, Distance, G_const = 0.6673;
  6.   ArrayList<PVector> reverseGravity = new ArrayList<PVector>(cir.size());
  7.  
  8.   if (centralAction)
  9.   {
  10.     for (int i = 0; i<cir.size(); i++)
  11.     {
  12.       reverseGravity.add(new PVector(0, 0));
  13.     }
  14.  
  15.     for (int i = 0; i<cir.size(); i++)
  16.     {    
  17.       //Calculation of the mass center
  18.       dem += cir.get(i).mass;
  19.       dividerx += cir.get(i).mass * cir.get(i).point.x;
  20.       dividery += cir.get(i).mass * cir.get(i).point.y;
  21.  
  22.       for (int j = i + 1; j<cir.size(); j++)
  23.       {
  24.  
  25.         //calculating distance between object
  26.         PVector lengthFrom_i_to_j = PVector.sub( cir.get(j).point, cir.get(i).point);
  27.         PVector lengthFrom_j_to_i = PVector.sub( cir.get(i).point, cir.get(j).point);
  28.  
  29.         Distance = lengthFrom_i_to_j.mag();
  30.         lengthFrom_i_to_j.normalize();
  31.         lengthFrom_j_to_i.normalize();
  32.  
  33.         //adding gravity
  34.         float strength = (G_const * cir.get(i).mass * cir.get(j).mass)/(Distance * Distance);
  35.         lengthFrom_i_to_j.mult(strength);
  36.         lengthFrom_j_to_i.mult(strength);
  37.  
  38.         reverseGravity.get(j).add(lengthFrom_j_to_i);
  39.  
  40.         grav_atract.add(lengthFrom_i_to_j);
  41.       }
  42.  
  43.       grav_atract.add(reverseGravity.get(i));
  44.       cir.get(i).setSpeed(grav_atract);
  45.       grav_atract.mult(0);
  46.  
  47.       for (int k = 0; k<reverseGravity.size(); k++)
  48.       {
  49.         reverseGravity.get(k).mult(0);
  50.       }
  51.     }
  52.   }
  53.  
  54.   checkForCollision();
  55.  
  56.   for (int i = 0; i < cir.size(); i++)
  57.   {  
  58.     cir.get(i).drawing();
  59.  
  60.     fill(50, 0, 255 );
  61.     stroke(255, 0, 50);
  62.     textAlign(CENTER, CENTER);
  63.     text(i, cir.get(i).point.x, cir.get(i).point.y);
  64.   }
  65.  
  66.   //Drawing a center of mass
  67.   pushMatrix();
  68.   strokeWeight(6);
  69.   fill(50, 0, 255 );
  70.   stroke(255, 0, 50);
  71.   point((dividerx/dem), (dividery/dem));
  72.   popMatrix();
  73. }
  74.  
  75. void homogeneousFieldManagement()
  76. {
  77.   PVector air_replica = new PVector(0.004, 0.004);
  78.   PVector grav = new PVector(0.00, 9.00);
  79.   PVector air;
  80.  
  81.   if (homogeneousAction)
  82.   {
  83.     for (int i = 0; i < cir.size(); i++)
  84.     {//Adding gravity
  85.       cir.get(i).setSpeed(grav);
  86.       air = air_replica.copy();
  87.  
  88.       if (cir.get(i).velocity.x > 0 ||cir.get(i).velocity.y > 0)
  89.       {
  90.         air.mult(-1);
  91.       }
  92.       //adding motion resistance
  93.       cir.get(i).setSpeed(air);
  94.     }
  95.   }
  96.  
  97.   checkForCollision();
  98.  
  99.   for (int j = 0; j < cir.size(); j++)
  100.   {
  101.     cir.get(j).drawing();
  102.     strokeWeight(6);
  103.     fill(50, 0, 255 );
  104.     stroke(255, 0, 50);
  105.     textAlign(CENTER, CENTER);
  106.     text(j, cir.get(j).point.x, cir.get(j).point.y);
  107.   }
  108. }
  109.  
  110. void singlePendulumManagement()
  111. {
  112.  
  113.   for (int i = 0; i < singlePend.size(); i++)
  114.   {
  115.     if (singleAction)
  116.     {
  117.       singlePend.get(i).update();
  118.     }
  119.     singlePend.get(i).drawing();
  120.   }
  121.   circle(0, 0, 10);
  122. }
  123.  
  124. void dublePendulumManagement()
  125. {
  126.  
  127.   for (int i = 0; i < doublePend.size(); i++)
  128.   {
  129.     doublePend.get(i).drowing(i, howManyDoublePen);
  130.   }
  131.   //drawing center ball
  132.   fill(82, 0, 14);
  133.   stroke(153, 0, 26);
  134.   circle(0, 0, 20);
  135. }
Advertisement
Add Comment
Please, Sign In to add comment