[Gelöst] Irgendwie stimmt die Erdrotation nicht...
-
... in meiner Simulation des Sonnensystems

Hey,
ich implementiere in meiner Simulation des Sonnensystems gerade die Planetenneigung und die Rotation um die eigene Achse.
Im Grunde funktionierts auch,
- im Sommer ist die Nordhalbkugel der Sonne zugewandt und im Winter die Südhalbkugel
- und zu jedem Datum stimmt die Beleuchtung: um 12 Uhr mittags ist Europa komplett beleuchtet und nachts ist es dunkel

Jedoch hab ich nun das seltsame Phänomen, dass der zweite Punkt mit der Beleuchtung nur im Sommer korrekt ist, im Winter ist es anscheinend exakt 180° gedreht, also mittags um 12 ist Europa genau im tiefsten Dunkel
Aber ich finde den Logikfehler einfach nicht... fällt vielleicht jemandem was auf?
Wenn nicht müsste ich ja einen kleinen Workaround einbauen und die Rotation selbst nachbessern (je stärker im Winter, desto mehr), aber das kann's ja wohl irgendwie nicht sein...
Der Code für die Drehung ist nicht grad lang:
// Obliquity glRotated(planet->obliquity, 1.0, 0.0, 0.0); // Self rotation double rot = (this->currentJDN - 2454270.0) / planet->rotation_period; // Performed rotations since Tuesday June 19, 2007 12:00 instead of JDN 0 (smoother rotations, don't know why, maybe precision?) fmod(rot, 1.0); rot *= 360.0; glRotated(rot, 0.0, 0.0, 1.0); // Draw // [..]Dankeschön!
-
hast du dran gedacht, dass die erdachse leicht geneigt ist?
-
thordk schrieb:
hast du dran gedacht, dass die erdachse leicht geneigt ist?
Punkt 1) und erste Zeile im Code

-
Ein normales Jahr hat 365 Sonnentage aber 366 Sterntage.
-
camper schrieb:
Ein normales Jahr hat 365 Sonnentage aber 366 Sterntage.
Ich sehe aber keinen Einfluss durch diesen kleinen Unterschied... wie schon gesagt, ich kann auch ins 17te Jahrhundert zurückreisen, um 12 Uhr mittags im Sommer ist Europa immernoch voll beleuchtet, also korrekt.
Ich kann mir einfach nicht erklären, warum es im Winter genau verkerht ist..
-
xindon schrieb:
thordk schrieb:
hast du dran gedacht, dass die erdachse leicht geneigt ist?
Punkt 1) und erste Zeile im Code

tatsache. nu hab ich auch mehr als die überschrift gelesen :p nen fehler um exakt 180° klingt nach nem vorzeichen- oder einheitenfehler.
-
thordk schrieb:
hast du dran gedacht, dass die erdachse leicht nen fehler um exakt 180° klingt nach nem vorzeichen- oder einheitenfehler.
Achso, das war ungünstig von mir ausgedrückt. Ich würde den Fehler als linear beschreiben, also im Herbst ist es ca. 90° falsch.
Je näher der Winter ist, desto stärker geht die Abweichung auf die 180° zu.
-
Ich wette mal fett das du als planet->rotation_period 24 Stunden genommen hast statt die Länge eines "siderischen" Tages, wie es richtig sein muss.
Der Unterschied zwischen beiden is bei einer halben Sonnenumdrehung (Sommer-Winter) nämlich genau eine halbe Erdumdrehung (Tag-Nacht).
siehe mal http://de.wikipedia.org/wiki/Erdrotation#Umdrehungsdauer
-
OK lass mich raten ... Du hast ein absolutes Koordinatensystem. In der Zeit die du Tag nennst dreht sich deine Erde darin um exakt 360°. In genau 365 Tagen bewegt sie sich einmal um die Sonne. Soweit korrekt? Logisch, dass sie dann in der Mitte eines Tages jeweils verschiedene Seiten der Sonne zuwendet, oder? Deshalb unterscheidet man zwischen Sonnentag und Sterntag. Ersterer ist durch die Abfolge von Hell und Dunkel definiert, letzterer an Fixsternen, als zu einem gewissen Grad absoluten Koordinaten, orientiert.
-
Hey das ist interessant, vielen Dank.
In meinem Programm habe ich die Rotationsperiode in Tagen gespeichert, bei der Erde exakt 1.0. Ich werde die 23 h 56 min 4,10 mal in "Tage" umrechnen... stay tuned

-
Wooohoo, ihr seid göttlich

Ich habe die Rotationsperiode mal in "Erdtage" umgerechnet:
Sterntag ------------------ 23 h + 56 min + 4,10 s = 23h + 3364,1s = 82800s + 3364,1s = 86164,1s Sonnentag ------------------ 24h = 86400s --> 86164,1s / 86400s = 0.99726967592592592592592592592593.. und es funktioniiiieeeert

Vielen Dank!