Position der Sonne (Azimut) in Lua

9

Es gibt nur eine Funktion in LUA, die ich online finden kann, aber es gibt falsche Werte (gemessen mit professionellen Online-Tools).

Es scheint, dass vom Sonnenaufgang bis zu einer gewissen Zeit nach dem Mittag die Mathematik funktioniert, aber danach kehrt der Winkel der Sonne in die Position des Sonnenaufgangs zurück. Sollte von 106 ° bis 253 ° betragen, liegt es derzeit zwischen 106 ° und ~ 180 ° bis 106 °.

Funktion, die ich verwende:

%Vor%

Beispielanforderung:

%Vor%

Ergebnis ist:

  • -0,1 Höhengrade
  • 106 Grad im Azimut.

Ergebnis sollte lauten:

  • -0,1 Höhengrade
  • 253 Grad im Azimut.

Ich habe mehrere Lösungen in anderen Programmiersprachen gefunden und sogar versucht, in Lua neu zu schreiben, aber ohne Erfolg. Zu komplexe Mathematik hinter der Lösung.

Ich verwende es für meine App Corona SDK , die die Position der Sonne relativ zum Gerät anzeigt. Die einzige Lösung, die derzeit funktioniert, ist ein PHP- oder JavaScript-Skript, das meine App über den API-Aufruf über das Internet anfordern kann, aber das möchte ich wirklich vermeiden.

Ich bin sehr dankbar für jede Hilfe von der Community. Danke und liebe euch Leute! :)

    
Edi Budimilic 17.02.2016, 20:42
quelle

2 Antworten

2

Ich habe einen Weg / Hack gefunden, um dieses Problem zu beheben.

Funktion ist immer noch gleich:

%Vor%

Der hinzugefügte Code, der das Problem behoben hat:

%Vor%

Und schließlich, um das richtige Ergebnis zu erhalten:

%Vor%

Das ist es. Ich wäre glücklicher mit der vollständigen Funktion, die die Mathematik richtig macht, aber das wird ausreichen. Es funktioniert und wurde an 3 Standorten weltweit getestet.

    
Edi Budimilic 26.02.2016, 17:25
quelle
1

Arccos eines Winkels ist gleich 360-Winkel, da ihre Kosinuswerte gleich sind. Sie können 360-Winkel einfach zurückgeben.

    
Amir 19.02.2016 23:26
quelle

Tags und Links