Advertisement
Guest User

Untitled

a guest
May 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 5.15 KB | None | 0 0
  1.  
  2.  
  3. package praktikum;
  4.  
  5. public class Schiff {
  6.     private double zeitpunkt;
  7.  
  8.         // Vektoren
  9.     public Positionsvektor position;
  10.         public Bewegungsvektor trans_rel;
  11.         public Bewegungsvektor trans_abs;
  12.         public Richtungsvektor kursvektor;
  13.         public Widerstandsvektor wasserwiderstands;
  14.  
  15.     private double aktuellerkurs;
  16.         private double gesetzterkurs;
  17.     private double translationsgeschwindigkeit;
  18.     private double drehgeschwindigkeit;
  19.         final private double masse;
  20.         final private int leistung;
  21.     final private double maxTransSpeedAbs;
  22.     final private double maxRotSpeedAbs;
  23.     final private String ID;
  24.  
  25.         private double wasserwiderstand;
  26.         private double antriebskraft;
  27.        
  28.  
  29.     Schiff(double zeitpunkt, double longitude, double latitude, double kurs, double masse, int leistung,
  30.             double translationsgeschwindigkeit, double drehgeschwindigkeit,
  31.             double maxTransSpeedAbs, double maxRotSpeedAbs, String ID)
  32.     {
  33.         this.ID=ID;
  34.         this.maxTransSpeedAbs=maxTransSpeedAbs;
  35.         this.maxRotSpeedAbs=maxRotSpeedAbs;
  36.         this.setTime(zeitpunkt);
  37.         this.aktuellerkurs=kurs;
  38.                 this.masse = masse;
  39.                 this.leistung = leistung;
  40.                 kursvektor = new Richtungsvektor(0,0);
  41.                 trans_rel = new Bewegungsvektor(0,0);
  42.                 position = new Positionsvektor(longitude,latitude);
  43.                 wasserwiderstands = new Widerstandsvektor(kursvektor,leistung,maxTransSpeedAbs);
  44.                 kursvektor.courseSetToCoord(kurs);
  45.         this.setTransSpeed(translationsgeschwindigkeit);
  46.         this.setRotSpeed(drehgeschwindigkeit);
  47.                 //wasserwiderstand = this.leistung/Math.pow(maxTransSpeedAbs, 3);
  48.                
  49.                 antriebskraft = this.leistung/maxTransSpeedAbs;
  50.     }
  51.  
  52.  
  53.  
  54.  
  55.  
  56.         // PHYSIK
  57.        
  58.         public double beschleunigung()
  59.         {
  60.             return this.umgesetztekraft()/this.masse;
  61.         }
  62.  
  63.         public double umgesetztekraft()
  64.         {
  65.             return antriebskraft - wasserwiderstand;
  66.         }
  67.  
  68.         // PHYSIK ENDE
  69.  
  70.     public void setTransSpeed(double newTransSpeed) {
  71.         if (isTranslationspeedValid(newTransSpeed))
  72.                 {
  73.             this.translationsgeschwindigkeit=newTransSpeed;
  74.                         // Der "Translation Vektor" muss hier noch verändert werden
  75.                         // this.translation.set(
  76.         }
  77.         else illegalArguments();
  78.     }
  79.    
  80.     public void setRotSpeed(double newRotSpeed) {
  81.         if (isRotationspeedValid(newRotSpeed)) {
  82.             this.drehgeschwindigkeit=newRotSpeed;
  83.         }
  84.         else illegalArguments();
  85.        
  86.     }
  87.    
  88.     public void setTime(double newTime) {
  89.         if (isTimeValid(newTime) ) { this.zeitpunkt=newTime; }
  90.         else illegalArguments();
  91.     }
  92.    
  93.     public void stopRot() {
  94.         this.drehgeschwindigkeit=0;
  95.     }
  96.    
  97.     public void stopTrans() {
  98.         this.translationsgeschwindigkeit=0;
  99.     }
  100.    
  101.     public void stopAllMotion() {
  102.         this.drehgeschwindigkeit=0;
  103.         this.translationsgeschwindigkeit=0;
  104.     }
  105.    
  106.     public void resetAll()  {
  107.         this.zeitpunkt=0;
  108.         this.position.setVektor(0, 0);
  109.         //this.kurs=0;
  110.         this.translationsgeschwindigkeit=0;
  111.         this.drehgeschwindigkeit=0;
  112.     }
  113.  
  114.         // Beschleunigung
  115.         // Geschwindigkeit
  116.  
  117.         public void move(int time,double leistung)
  118.         {
  119.             trans_abs.set(trans_rel.sub(wasserwiderstands));
  120.             trans_abs.set(kursvektor.mul(time)); // Positionsvektor(New) = Positionsvektor(Old) + Richtungsvektor * time
  121.             position.add(trans_rel);
  122.         }
  123.  
  124.         public void setcourse(double setkurs)
  125.         {
  126.             this.gesetzterkurs = setkurs;
  127.         }
  128.  
  129.         // Verändert den "aktuellen kurs" um den "gesetzten Kurs".
  130.         // Wenn "gesetzter Kurs" < 0 (Backbord Kurs), dann "gesetzte Kurs" + 1 und "aktuelle Kurs" - 1.
  131.         // Wenn "gesetzter Kurs" > 0 (Steuerbord Kurs), dann "gesetzte Kurs" - 1 und "aktuelle Kurs" +1.
  132.  
  133.         public void chgcourse()
  134.         {
  135.             if(this.gesetzterkurs != 0)
  136.             {
  137.                 if (gesetzterkurs < 0)
  138.                 {
  139.                     kursvektor.courseSetToCoord(this.aktuellerkurs-1);
  140.                     this.aktuellerkurs--;
  141.                     this.gesetzterkurs++;
  142.                 }
  143.                 else
  144.                 {
  145.                     kursvektor.courseSetToCoord(this.aktuellerkurs+1);
  146.                     this.aktuellerkurs++;
  147.                     this.gesetzterkurs--;
  148.                 }
  149.             }
  150.  
  151.         }
  152.  
  153.         public double getcourse()
  154.         {
  155.             return this.aktuellerkurs;
  156.         }
  157.  
  158.         // Ein Step entspricht genau einer Sekunde
  159.         public void step(int time) // time gibt die Geschwindigkeit an.
  160.         {
  161.             chgcourse();
  162.             //move(time);
  163.         }
  164.  
  165.  
  166.     @Override
  167.     public String toString() {
  168.         String s="Schiff (" + this.ID + ") \n Zeitpunkt: " + this.zeitpunkt +"\n Position: "
  169.         + this.position.getVektor() + "\n Kurs: " + this.aktuellerkurs
  170.         + "\n Translationsgeschwindigkeit: " + this.translationsgeschwindigkeit + "(max: "
  171.         + this.maxTransSpeedAbs + ")" + "\n Drehgeschwindigkeit: " + this.drehgeschwindigkeit
  172.         + "(max: " + this.maxRotSpeedAbs + ")";
  173.         return s;
  174.     }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement