summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Zotti <Georg.Zotti@univie.ac.at>2021-10-27 13:32:39 +0200
committerGeorg Zotti <Georg.Zotti@univie.ac.at>2023-01-22 13:00:54 +0100
commit71705dbd2e79666bbbb9beec4562f5cd17080f01 (patch)
treed7c2b7531730b529e39ce75e46816f4d54e7523c
parente96d56adb10eda1cffbd2ba29108360f2e71cf80 (diff)
More accurate solution for planet diameterfix-lunar-occultation
-rw-r--r--src/core/modules/Planet.cpp2
-rw-r--r--src/core/modules/StarMgr.cpp4
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;