diff options
author | Georg Zotti <Georg.Zotti@univie.ac.at> | 2021-10-27 13:32:39 +0200 |
---|---|---|
committer | Georg Zotti <Georg.Zotti@univie.ac.at> | 2023-01-22 13:00:54 +0100 |
commit | 71705dbd2e79666bbbb9beec4562f5cd17080f01 (patch) | |
tree | d7c2b7531730b529e39ce75e46816f4d54e7523c | |
parent | e96d56adb10eda1cffbd2ba29108360f2e71cf80 (diff) |
More accurate solution for planet diameterfix-lunar-occultation
-rw-r--r-- | src/core/modules/Planet.cpp | 2 | ||||
-rw-r--r-- | src/core/modules/StarMgr.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/core/modules/Planet.cpp b/src/core/modules/Planet.cpp index b4fb68ff24..e387041e7a 100644 --- a/src/core/modules/Planet.cpp +++ b/src/core/modules/Planet.cpp @@ -2865,7 +2865,7 @@ float Planet::getVMagnitude(const StelCore* core) const double Planet::getAngularRadius(const StelCore* core) const { const double rad = (rings ? rings->getSize() : equatorialRadius); - return std::atan2(rad*sphereScale,getJ2000EquatorialPos(core).norm()) * M_180_PI; + return std::asin(rad*sphereScale/getJ2000EquatorialPos(core).norm()) * M_180_PI; } diff --git a/src/core/modules/StarMgr.cpp b/src/core/modules/StarMgr.cpp index 1798135abc..ff5fef45f7 100644 --- a/src/core/modules/StarMgr.cpp +++ b/src/core/modules/StarMgr.cpp @@ -1319,10 +1319,10 @@ void StarMgr::draw(StelCore* core) PlanetP moon = GETSTELMODULE(SolarSystem)->getMoon(); Vec3d moonPos=moon->getJ2000EquatorialPos(core); const double moonRadius = moon->getEquatorialRadius() * moon->getSphereScale(); - double angularSize = atan2(moonRadius, moonPos.norm()); + double angularSize = asin(moonRadius / moonPos.norm()); moonPos.normalize(); SphericalCap moonCap(moonPos, cos(angularSize)); - for (auto cap : viewportCaps) + for (auto &cap : viewportCaps) { if (cap.intersects(moonCap)) filterMoon=true; |