Hi
Ich möchte gerne einen einfachen Gravitationseinfluss eines Planeten auf ein Schiff simulieren.
Input ist:
- x,y des Schiffes
- x,y des Planeten
- Gravitationskonstante des Planeten
Output ist:
- Hinzuzufügende Geschwindigkeit x und y des Schiffes
Die Gravitationskonstante habe ich bis jetzt so benutzt, dass sie die Entfernung angibt in der die Gravitation noch wirkt. Danach wird die Differenz von Gravitationskonstante und Abstand des Schiffes zum Planeten zur aktuellen Beschleunigung des Schiffes hinzugefügt.
Das ganze funktioniert zwar grundsätzlich. Die Gravitation wirkt sich aber Linear aus und das stimmt so ja nicht wirklich.
Ziel ist, dass das ganze System stimmig ist (es muss nicht 100% realistisch sein) und es schlussendlich einfacher ist in einen Orbit einzuschwenken.
Ich hoffe ihr habt eine Idee wie ich das hinbekomme
Vielen Dank
jeipack
Edit:
Wenn ich die Gravitationskonstante recht hoch stelle und dif_x und dif_y jeweils noch durch 2.5 Teile kommt es im Moment ganz gut. Über Anregungen würde ich mich trozdem freuen!
Ich möchte gerne einen einfachen Gravitationseinfluss eines Planeten auf ein Schiff simulieren.
Input ist:
- x,y des Schiffes
- x,y des Planeten
- Gravitationskonstante des Planeten
Output ist:
- Hinzuzufügende Geschwindigkeit x und y des Schiffes
Die Gravitationskonstante habe ich bis jetzt so benutzt, dass sie die Entfernung angibt in der die Gravitation noch wirkt. Danach wird die Differenz von Gravitationskonstante und Abstand des Schiffes zum Planeten zur aktuellen Beschleunigung des Schiffes hinzugefügt.
Java:
//Gravitationseinfluss auf Schiff ausüben
int dif_x=planet.getMidX()-ship.getMidX();
int dif_y=planet.getMidY()-ship.getMidY();
if(dif_x*dif_x+dif_y*dif_y<planet.getGravity()*planet.getGravity()) {
if(dif_x>1||dif_x<-1) {
if(dif_x<planet.getGravity()) {
ship.beeinflusseBeschleunigungX(dif_x);
}
}
if(dif_y>1||dif_y<-1) {
if(dif_y<planet.getGravity()) {
ship.beeinflusseBeschleunigungY(dif_y);
}
}
}
Ziel ist, dass das ganze System stimmig ist (es muss nicht 100% realistisch sein) und es schlussendlich einfacher ist in einen Orbit einzuschwenken.
Ich hoffe ihr habt eine Idee wie ich das hinbekomme
Vielen Dank
jeipack
Edit:
Wenn ich die Gravitationskonstante recht hoch stelle und dif_x und dif_y jeweils noch durch 2.5 Teile kommt es im Moment ganz gut. Über Anregungen würde ich mich trozdem freuen!
Zuletzt bearbeitet: