Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package praktikum;
- public class Schiff {
- private double zeitpunkt;
- // Vektoren
- public Positionsvektor position;
- public Bewegungsvektor trans_rel;
- public Bewegungsvektor trans_abs;
- public Richtungsvektor kursvektor;
- public Widerstandsvektor wasserwiderstands;
- private double aktuellerkurs;
- private double gesetzterkurs;
- private double translationsgeschwindigkeit;
- private double drehgeschwindigkeit;
- final private double masse;
- final private int leistung;
- final private double maxTransSpeedAbs;
- final private double maxRotSpeedAbs;
- final private String ID;
- private double wasserwiderstand;
- private double antriebskraft;
- Schiff(double zeitpunkt, double longitude, double latitude, double kurs, double masse, int leistung,
- double translationsgeschwindigkeit, double drehgeschwindigkeit,
- double maxTransSpeedAbs, double maxRotSpeedAbs, String ID)
- {
- this.ID=ID;
- this.maxTransSpeedAbs=maxTransSpeedAbs;
- this.maxRotSpeedAbs=maxRotSpeedAbs;
- this.setTime(zeitpunkt);
- this.aktuellerkurs=kurs;
- this.masse = masse;
- this.leistung = leistung;
- kursvektor = new Richtungsvektor(0,0);
- trans_rel = new Bewegungsvektor(0,0);
- position = new Positionsvektor(longitude,latitude);
- wasserwiderstands = new Widerstandsvektor(kursvektor,leistung,maxTransSpeedAbs);
- kursvektor.courseSetToCoord(kurs);
- this.setTransSpeed(translationsgeschwindigkeit);
- this.setRotSpeed(drehgeschwindigkeit);
- //wasserwiderstand = this.leistung/Math.pow(maxTransSpeedAbs, 3);
- antriebskraft = this.leistung/maxTransSpeedAbs;
- }
- // PHYSIK
- public double beschleunigung()
- {
- return this.umgesetztekraft()/this.masse;
- }
- public double umgesetztekraft()
- {
- return antriebskraft - wasserwiderstand;
- }
- // PHYSIK ENDE
- public void setTransSpeed(double newTransSpeed) {
- if (isTranslationspeedValid(newTransSpeed))
- {
- this.translationsgeschwindigkeit=newTransSpeed;
- // Der "Translation Vektor" muss hier noch verändert werden
- // this.translation.set(
- }
- else illegalArguments();
- }
- public void setRotSpeed(double newRotSpeed) {
- if (isRotationspeedValid(newRotSpeed)) {
- this.drehgeschwindigkeit=newRotSpeed;
- }
- else illegalArguments();
- }
- public void setTime(double newTime) {
- if (isTimeValid(newTime) ) { this.zeitpunkt=newTime; }
- else illegalArguments();
- }
- public void stopRot() {
- this.drehgeschwindigkeit=0;
- }
- public void stopTrans() {
- this.translationsgeschwindigkeit=0;
- }
- public void stopAllMotion() {
- this.drehgeschwindigkeit=0;
- this.translationsgeschwindigkeit=0;
- }
- public void resetAll() {
- this.zeitpunkt=0;
- this.position.setVektor(0, 0);
- //this.kurs=0;
- this.translationsgeschwindigkeit=0;
- this.drehgeschwindigkeit=0;
- }
- // Beschleunigung
- // Geschwindigkeit
- public void move(int time,double leistung)
- {
- trans_abs.set(trans_rel.sub(wasserwiderstands));
- trans_abs.set(kursvektor.mul(time)); // Positionsvektor(New) = Positionsvektor(Old) + Richtungsvektor * time
- position.add(trans_rel);
- }
- public void setcourse(double setkurs)
- {
- this.gesetzterkurs = setkurs;
- }
- // Verändert den "aktuellen kurs" um den "gesetzten Kurs".
- // Wenn "gesetzter Kurs" < 0 (Backbord Kurs), dann "gesetzte Kurs" + 1 und "aktuelle Kurs" - 1.
- // Wenn "gesetzter Kurs" > 0 (Steuerbord Kurs), dann "gesetzte Kurs" - 1 und "aktuelle Kurs" +1.
- public void chgcourse()
- {
- if(this.gesetzterkurs != 0)
- {
- if (gesetzterkurs < 0)
- {
- kursvektor.courseSetToCoord(this.aktuellerkurs-1);
- this.aktuellerkurs--;
- this.gesetzterkurs++;
- }
- else
- {
- kursvektor.courseSetToCoord(this.aktuellerkurs+1);
- this.aktuellerkurs++;
- this.gesetzterkurs--;
- }
- }
- }
- public double getcourse()
- {
- return this.aktuellerkurs;
- }
- // Ein Step entspricht genau einer Sekunde
- public void step(int time) // time gibt die Geschwindigkeit an.
- {
- chgcourse();
- //move(time);
- }
- @Override
- public String toString() {
- String s="Schiff (" + this.ID + ") \n Zeitpunkt: " + this.zeitpunkt +"\n Position: "
- + this.position.getVektor() + "\n Kurs: " + this.aktuellerkurs
- + "\n Translationsgeschwindigkeit: " + this.translationsgeschwindigkeit + "(max: "
- + this.maxTransSpeedAbs + ")" + "\n Drehgeschwindigkeit: " + this.drehgeschwindigkeit
- + "(max: " + this.maxRotSpeedAbs + ")";
- return s;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement