# Ellipsen Kreisbahnen berechnen!



## Black_Divil (18. Mai 2006)

Hallo mal wieder,
Hab da mal eine etwas gröbere Frage...
Ich möchte ein objekt auf einer Elliptischen bahn bewegen, wie das mit den bewegen funktioniert weis ich... allerdings wie ich jetzt jede einzelne Position ermittel um mein objekt mit den Koordinaten zu füttern ist mir gänzlich unklar...
Ich habe bis jetzt jede einzelne pos von x und y in einen int array gespeichert und das objekt darüber bewegt... aber ich fände es geschickter wenn der rechner das selbst berechnen könnte...

Hat jemand ne ahnung wie das geht?

ich fänds toll wenn!!


----------



## Memphis (18. Mai 2006)

würde vorschlagen im Tafelwerk oder in irgendner Formelsamlung eine Formel rauszusuchen, gibt sicher ne allgemeine Formel dafür.


----------



## Black_Divil (18. Mai 2006)

Jo,
vieleicht auch zu allgemein...
nein, ich habe schon seit 2 Tagen in Wikipedia und den rest des Internets rum gesucht... 
Es ist auch so mit diesen Mathematischen Formel komm ich eventuel vieleicht noch gerade so klar..
aber ich tu mir unheimlich schwer damit..

@memphis  Auf dieses Tafelwerk kann man sicher in anderen fällen mal drauf sehen... kannte ich auch noch nicht... 

Hat vieleicht jemand ein geheimtip?

oder Was soll ich eurer meinung nach durch lesen?


----------



## lin (18. Mai 2006)

http://de.wikipedia.org/wiki/Keplersche_Gesetze


----------



## lin (18. Mai 2006)

> Ich habe bis jetzt jede einzelne pos von x und y in einen int array gespeichert und das objekt darüber bewegt... aber ich fände es geschickter wenn der rechner das selbst berechnen könnte...


naja, mit der formel x^2 / a^2 + y^2 / b^2 = 1 kannst du das ja die Punkte der Ellipse berechnen, jetzt kommts nur noch drauf an, wie schnell sich dein Körper bewegt..


----------



## Black_Divil (19. Mai 2006)

Ja wie ich schon sagte steig ich da nicht ganz durch was diese Formel bringen soll
in meinen fall kommt immer 2 raus. mit kleinen schönheitsoperationen bekomm ich auch mal eine 1.
und in ganz schlimmen fällen sogar eine 0 ...
Jetzt versteh ich nur nicht wie ich daraus eine Ellipsen bahn berechnen soll. 

Dennoch glaub ich du warst mit deiner idee genauso weit wie ich ...
aber soll dieser unkomfortable weg wirklich die lösung sein...

vieleicht könnt ihr mir anders helfen...
es gibt doch die funktion die eine Ellipse malt... 

```
Graphics.drawOval()
```

wenn mann nun in die Graphics klasse geht sollte mann ja eigentlich eine mehtode finden die das oval zeichnet...
dummerweise findet man nur eine Abstrakte klasse die nix zeichnet...
und noch weniger macht... wie findet mann das wie die das machen?


----------



## Leroy42 (19. Mai 2006)

Ich habe jetzt keine Lust, die Bewegungsgleichungen (x(t), y(t))
einer Planetenumlaufbahn anhand der Kepler'schen Gesetze zu suchen;
geschweige davon, die herzuleiten, aber



			
				Black_Divil hat gesagt.:
			
		

> es gibt doch die funktion die eine Ellipse malt...
> 
> ```
> Graphics.drawOval()
> ```



Das ist keine Funktion/Methode, die eine Ellipse zeichnet.

Graphics ist ein reines Interface, daß von sie implementierenden
Klassen verlangt, unter Anderem, drawOval(...) zu implementieren.

Innerhalb der paint/paintComponent-Methode bekommst du dann
eine Instanz einer Klasse, die Graphics implementier hat.

```
public void paintComponent(Graphics g) {
  super.paint(Component);
  System.out.println(g.getClass().getName());
  g.drawOval(...)
}
```

Hier kannst du dir mal anzeigen lassen, welche Klasse auf deinem System
zur Laufzeit die Ellipse zeichnet.


----------



## Black_Divil (19. Mai 2006)

Ich danke dir erst mal für den Tipp die Klasse heraus zu finden...

Demnach ist das 
sun.java2d.SunGraphics2D

nun hab ich leider feststellen müssen das mir das auch nicht weiter hilft... da ich die source Codes nicht auch der platte habe und in der Java Api ist über die klasse leider auch nichts zu finden. 


 :roll:  Das muss doch irgendwie zu machen sein.


----------



## Leroy42 (19. Mai 2006)

Ich habe zur Sekunde in einem Nachbarthread etwas von
_information-hiding_ geschrieben, oder

_Wie_ welche Klasse etwas macht, hat dich nichts anzugehen  :noe: 

Wichtig ist alleine, _was_ sie kann. Und das ist in der Graphics-API
beschrieben.

Ich verstehe immer noch nicht, was du eigentlich wissen willst  :autsch: 
Wer wie deine Ellipse zeichnet, ist doch (dir als Anwender) egal,
hauptsache sie wird gezeichnet.


----------



## Black_Divil (19. Mai 2006)

Oh, 
dann reden wir ein bischen an einander vorbei...
wenn du sagst das mir das egal sein muss, da geb ich dir volkommen recht!!
Es ist mir eigentlich auch egal ...

Ich versprech mir eigentlich nur eines damit... heraus zu finden wie die Funktion die Ellipse malt um darauf hin mit dieser Information zum Beispiel einen Planet (zum Beispiel, die Erde) um eine "Sonne" zu bewegen (und das auf einer eliptischen Bahn)
Wobei ich jetzt nicht so weit ausholen möchte das ich Wahrheits getreue Bewegungen simulieren möchte... mir reicht es wenn sich im Sonnen System, Planeten um eine Sonne bewegen .... wobei die Sonne auch im Zentrum des Sonnensystems (bzw. der Elipse)  sein kann....

Ich kann ja schlieslich nicht sagen mal eine Ellipse und sag dem Planet fahr der weisen Linie nach... Wobei ich die Ellipse im eigentlichen Programm auch gar nicht sehen will... 

Sowas wie 
Point[] coord = Ellipse.getCoordinates();
gibts ja leider auch nicht... (oder bessergesagt, nicht das ich wüsste)

Das ganze klingt jetzt warscheilich wieder ein bisschen kompliziert aber ich hoffe du verstehst es und
kannst mir dann vieleicht weiterhelfen... (Du bist eh der erste, der es ernst nimmt, mir zu helfen!! ) :!: LOB AUSSPRECH  :!:


----------



## 0xdeadbeef (19. Mai 2006)

x = a*cos(alpha);
y = b*sin(alpha);

a und b sind die Faktoren, um die die Ellipse in x- und y-Richtung von der Kreisbahn abweicht, alpha ist der Winkel. Wenn Du also einfach den Winkel von 0..2*PI laufen läßt (bzw. von 0..360°), dann hast Du Deine Ellipsenbahn.[/img]


----------



## Leroy42 (19. Mai 2006)

Es ist nicht zu kompliziert. Im Gegenteil: Jetzt verstehe ich endlich wofür du die Sourcen haben willst

Google lieber nach :"Bewegunsgleichung ellipse" (ohne Häkchen), da wirst du schneller fündig

Oder frage im Mathe Forum (google: "mathe forum", 1. Treffer)

Ich muß jetzt los, Feierabend


----------

