Autor Nachricht
Polinaru
BeitragVerfasst am: 22. Dez 2012 12:42    Titel:

Tja. Ich habe den Fehler gefunden. Dass mir hier keiner helfen konnte wundert mich nun nicht mehr, handelte sich nicht um meine Mathematik die falsch war, sondern um einen dummen Fehler in der Programmierung. Dass man mir in dem Programmierer-Forum jedoch nicht helfen konnte, macht mir Sorgen... Augenzwinkern

P.S. ich finde es sehr passend, dass das Captcha "Newton" von mir haben will Freude
Polinaru
BeitragVerfasst am: 21. Dez 2012 15:05    Titel:

Niemand ? :[
Polinaru
BeitragVerfasst am: 20. Dez 2012 13:03    Titel:

Nun, der Code muss auf jedem beliebigen PCs laufen, daher ist eine Angabe in cm ausgeschlossen. Ein anderer Monitor, eine andere Auflöungs und schon kommt das ganze nicht mehr hin.

Das mit der Updatezeit scheints du auch nicht ganz richtig verstanden zu haben. Die mittlere Updatezeit zu errechnen praktisch kein Problem da, es ist nur extrem anfällig für Fehler. Und wenn ich diesen Wert dann noch irgendwo in einer Formel verarbeite gibt das nur Probleme, die zum Teil nicht lösbar sein werden. Die Updatezeit ist sowieso hauptsächlich dazu da um mit ihr jegliche Bewegung zu verrechnen. Dabei geht es darum, dass die Bewegung (sagen wir einer Spielfigur) in Abhängigkeit zur Geschwindigkeit der CPU ausgeführt wird. Ist ein Update schnell, wird die Figur nur ein bisschen bewegt, ist das Update langsam wird sie mehr bewegt. Für alles andere ist die Updatezeit eher Tabu (bis auf ein paar Ausnahmen).

Ich glaube du gehst das Problem von der falschen Seite an.

Ich persönlich vermute ja immer noch, dass Newton kein Idiot war und seine Formeln einwandfrei funktionieren und ich stattdessen der Idiot bin der irgendwo etwas verpatzt hat. Allerdings bin ich auch eine ziemliche Pfeife in Mathe :/

Nehmen wir zB. v = (Wurzel)G*M/r.
In meinem Fall wäre das also (Wurzel)0.005 * 10000 / 313 (korrigiert mich wenn ich da was verbockt habe :/ )
Das Ergebnis daraus ist allerdings 0,3996 - nicht mal nah an den 1.63 dran.

Wie schon erwähnt stelle ich mir immer die Frage ob eine Konvertierung der Einheiten überhaupt ohne weiteres möglich ist. Soll heißen die echte G durch meine künstliche zu ersetzen, echt Meter durch Pixel und Zeit... naja Zeit bleibt eigentlich gleich. Allerdings müsste das doch möglich sein, wenn ich gleichzeitig auch die Gravitation selbst mit diesen Werten bestimme ?! So sollte sich doch auch in der echten Welt nichts ändern, wenn man die Masse der Erde halbieren würde, dafür aber G verdoppeln ?!

Nun, ich bin wirklich ratlos :[

Blöderweise fehlt mir auch das, was ich gern als "Mathe-Hirn" bezeichne. Ich bräuchte Tage um die blöden Formlen überhaupt zu verstehen... versteht mich nicht falsch, ich weiß was sie tun und wie sie funktionieren. Aber sie so umstellen, dass ich einen Fehler umgehen würde ? Das kann ich offenbar nicht.

v = g*r

Diese Formel zB. gibt mir ein schönes 1,565, was ziemlich nah dran ist. Das reicht allerdings nicht und so wirklich richtig kann das auch nicht sein.

Ich brauche also mal eben einen Nachfahren Newtons der zufällig auch noch programmieren kann Zunge raus
jmd
BeitragVerfasst am: 20. Dez 2012 10:57    Titel:

Hallo

Polinaru hat Folgendes geschrieben:
Nunja der Durchmesser dürfte irgendwo nahe 626 liegen

Ich meinte den Durchmesser in cm
Den muß man auf dem Bildschirm messen

Polinaru hat Folgendes geschrieben:

Eine Messung der Umlaufzeit in "echten" Sekunden ist jedoch trotzdem möglich, allerdings sehe ich nicht was das bringen soll !?

Es bringt Information,die wichtig sein könnten
Möglicherweise kann man damit die mittlere Updatezeit berechnen





Wenn man jetzt für v=1.63 P/U und für R=313 P einsetzt bekommt man für
GM=831,6 P^3/U^2
Vielleicht kann man damit v berechnen

Gruß
Polinaru
BeitragVerfasst am: 20. Dez 2012 01:07    Titel:

Nunja der Durchmesser dürfte irgendwo nahe 626 liegen, sprich die zweifache Entfernung, da es sich ja um eine Kreisbahn handelt. Es wird nicht exakt 626 sein, da es keine perfekte Kreisbahn ist, aber es dürfte ziemlich nah dran sein.

Wie groß die Umlaufzeit ist weiß ich nicht, könnte ich allerdings rausfinden. Ich sehe allerdings einen gefährlichen Weg darin. Da Updates nicht immer gleich lang dauern, ist es unmöglich vorher zu sagen wie lange, geschweige denn wieviele Updates lang ein Orbit dauern wird. Dieser Wert sollte also möglichst gar nicht angerührt werden.

Puh. Updatezeit... tja, das ist so ein Thema für sich. Wer nie programmiert hat weiß natürlich nicht worum es dabei geht. Ich versuche es mal schnell zu erklären.

Das ganze nennt sich Gameloop. Es handelt sich dabei im Prinzip um eine Endlosschleife ("Mach solange weiter bis ich stopp sage"). Diese führt immer mindestens zwei Befehle aus. Einmal das Updaten der Spielwelt (Position des Spielers, von Projektilen, dem Cursor usw.) und einmal das zeichnen des ganzen. Allerdings ist nicht gesagt, dass beide immer ein 1:1 Verhältnis haben müssen (Stichwort "fps").

Nun das Problem mit der Updatezeit ist also, dass diese stark variieren kann. Das liegt daran, dass erst dann ein neues Update aufgerufen wird, wenn das alte durchgelaufen ist. Selbst wenn immer das gleiche gemacht wird, ist die CPU niemals gleichschnell damit fertig, weil zB. das Betriebssystem noch nebenbei was macht... oder sonst irgendwer. Außerdem gibt es noch unterschiede in der Stärke der CPU. Ein Rechner mit schwacher CPU braucht länger für ein Update als einer mit starker CPU. Das ist der Grund wieso diese Zeiteinheit recht unverlässlich ist.

Kurz gesagt ist die Updatezeit einfach ein Wert (hoffentlich im Millisekundenbereich) der angibt, wie lange ein Update gedauert hat.

Eine Messung der Umlaufzeit in "echten" Sekunden ist jedoch trotzdem möglich, allerdings sehe ich nicht was das bringen soll !? Schließlich ist das eines der Dinge, die ich schon gern gewusst hätte, bevor ich ein Objekt überhaupt in den Orbit schicke Augenzwinkern
jmd
BeitragVerfasst am: 19. Dez 2012 20:17    Titel:

Hallo

Welchen Durchmesser hatte die Kreisbahn auf dem Bildschirm und wie groß war die Umlaufzeit?
Kannst du vielleicht den Pixeldurchmesser und die Updatezeit genauer angeben?
Was bedeutet Updatezeit? Zeit zwischen 2 Bildern?

Gruß
Polinaru
BeitragVerfasst am: 19. Dez 2012 15:12    Titel: Orbitalgeschwindigkeit mit willkürlichen Werten errechnen

Meine Frage:
Hallo.

Es geht, wie der Titel bereits veraten hat, um die berechnung einer Orbitalgeschwindigkeit. Das Problem dabei ist, dass die üblichen Formeln nicht funktionieren wollen. Der Grund dafür könnte mit den willkürlichen Werten zu tun haben, die ich gewählt habe.

Ich habe willkürliche Werte genommen, weil es ums programmieren geht und man dort nunmal bevorzugt mit Pixeln und Millisekunden arbeitet.

Zuerst habe ich mir also ein kleines Raumschiff gezeichnet und ein Planeten in die Landschaft gestellt. Dann habe ich mir Gravitation gebastelt. Dann errechne ich die stärke mit welcher der Planet am Raumschiff zieht. Das Ergebnis ist dann allerdings nicht in einer üblichen Maßeinheit, sondern in Pixel pro Update(Wenige Millisekunden). Das ganze habe ich so angestellt:

force = Gravitationskonstante * (Planetenmasse / Distanz²).

Und hier kommen die willkürlichen Werte ins Spiel. Meine Konstante ist 0.005 und die Maße des Planeten ist 10.000. Das ganze funktioniert wunderbar, sofern ich das beurteilen kann. Ich steuere das Raumschiff indem ich pro Tastendruck ein wenig Schub in eine bestimmte Richtung gebe. Die Tatsache, dass es recht einfach ist einen Orbit zu erhalten sagt mir, dass die Lösung wohl korrekt ist.

Das war aber auch nicht das Problem, es ist jedoch möglich, dass es etwas mit der Formel oben zu tun hat, weshalb ich sie gleich mit posten wollte.

Mein eigentliches Problem ist nun, dass ein Objekt (Planet, Mond, Raumschiff, wasauchimmer) in einen Orbit um ein anderes Objekt schicken will. Undzwar möglichst Kreisförmig.

Beispiel:

Planetenmasse = 10000
Gravitationskonsatnte = 0,005
Distanz = 313 Pixel (In diesem Fall ist das Zentrum des Raumschiffs 313 Pixel weiter Links, als das Zentrum des Planeten)

Durch ausprobieren habe ich bei diesem Setup den Wert 1.63 ermittelt. Das heißt 1.63 Pixel/Update nach oben. Das führt dazu, dass das Raumschiff sich in einer schönen (fast perfekten) Kreisbahn um den Planeten bewegt. Blöderweise liefert keine mir bekannte Formel ein Ergebnis, dass dies hinbekommen würde.


Ich bin wirklich nicht der beste in Mathe und gerade wenn ich Formeln aus dem echten Leben verwenden soll die sich auf echte Maßeinheiten beziehen und dort sicher richtige Ergebnisse liefern, bin ich mir immer unsicher ob dies auch für willkürliche gilt.

Nunja, ich bin ratlos. Ich habe das Problem auch schon in einem Programmiererforum geschildert, aber die konnten auch nicht mehr tun als mir die üblichen Formeln zu nennen, die nunmal einach nicht funktionieren. Allerdings bin ich mir ziemlich sicher, dass sie auch mit willkürlichen Werten funktionieren sollten, solange die Gravitation selbst ebenfalls auf diesen aufbaut. Nunja, wie gesagt ich bin eine Niete in Mathe und komme nicht weiter, daher hoffe ich dass einer von euch eine Idee hat, woran es liegen könnte.



Meine Ideen:
-

Powered by phpBB © 2001, 2005 phpBB Group