From 4e3121718677a6a5fc6948d5e6ca2ab6f93436ca Mon Sep 17 00:00:00 2001 From: vini Date: Sun, 19 Jul 2026 16:06:43 -0300 Subject: [PATCH] Stylize Moon and planet visibility --- plugin/contents/ui/dancer.html | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/plugin/contents/ui/dancer.html b/plugin/contents/ui/dancer.html index f6fa245..eee34df 100644 --- a/plugin/contents/ui/dancer.html +++ b/plugin/contents/ui/dancer.html @@ -1269,13 +1269,13 @@ const TWINKLE_MAG = 4.0; // até esta magnitude a estrela cintila; acima é e const DEG = Math.PI / 180; window.__skyTimeOffset = 0; // debug: ms somados ao relógio p/ testar a rotação const PLANET_SPECS = [ - [Astronomy.Body.Mercury, 'Mercúrio', [205, 190, 165], 2439.7], - [Astronomy.Body.Venus, 'Vênus', [255, 232, 180], 6051.8], - [Astronomy.Body.Mars, 'Marte', [255, 120, 82], 3389.5], - [Astronomy.Body.Jupiter, 'Júpiter', [255, 218, 170], 69911], - [Astronomy.Body.Saturn, 'Saturno', [238, 205, 135], 58232], - [Astronomy.Body.Uranus, 'Urano', [145, 225, 235], 25362], - [Astronomy.Body.Neptune, 'Netuno', [105, 150, 255], 24622], + [Astronomy.Body.Mercury, 'Mercúrio', [190, 188, 182]], + [Astronomy.Body.Venus, 'Vênus', [255, 241, 204]], + [Astronomy.Body.Mars, 'Marte', [238, 105, 70]], + [Astronomy.Body.Jupiter, 'Júpiter', [232, 202, 164]], + [Astronomy.Body.Saturn, 'Saturno', [224, 195, 128]], + [Astronomy.Body.Uranus, 'Urano', [151, 223, 226]], + [Astronomy.Body.Neptune, 'Netuno', [91, 126, 220]], ]; const KM_PER_AU = 149597870.7; const MOON_RADIUS_KM = 1737.4; @@ -1841,7 +1841,8 @@ function updateSolarSystem(date, lst, W, H, horizonPx) { const angularRadiusPx = (radiusKm, distanceAu) => Math.asin(Math.min(1, radiusKm / (distanceAu * KM_PER_AU))) / DEG * (horizonPx / ALT_TOP); - const moonRadius = angularRadiusPx(MOON_RADIUS_KM, moonCoords.eq.dist); + const realMoonRadius = angularRadiusPx(MOON_RADIUS_KM, moonCoords.eq.dist); + const moonRadius = Math.max(realMoonRadius, Math.min(18, H * 0.0075)); /* Transformação vetorial oficial do exemplo camera.js do Astronomy Engine: ângulo do limbo claro em relação ao alto do horizonte. */ @@ -1864,14 +1865,16 @@ function updateSolarSystem(date, lst, W, H, horizonPx) { } : null; const planets = []; - for (const [body, name, color, radiusKm] of PLANET_SPECS) { + for (const [body, name, color] of PLANET_SPECS) { const coords = bodyCoordinates(body); if (!coords.sc) continue; const illumination = Astronomy.Illumination(body, date); planets.push({ ...coords.sc, alt: coords.aa.alt, az: coords.aa.az, name, color, body, magnitude: illumination.mag, - radius: Math.max(0.55, angularRadiusPx(radiusKm, coords.eq.dist)), + /* Tamanho visual ampliado por magnitude: os discos angulares reais + seriam subpixel, mas posição e brilho relativo continuam reais. */ + radius: Math.max(1.8, Math.min(5.2, 3.45 - illumination.mag * 0.46)), }); } solarSystemFrame = { moon, planets };