Fix moon visibility on dark background
This commit is contained in:
1 parent
d8a644864b
commit
c91a278294
1 file changed
+10
-8
+10
-8
@@ -76,7 +76,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<div id="vanta"></div>
|
<div id="vanta"></div>
|
||||||
<div id="info-panel">
|
<div id="info-panel">
|
||||||
<div id="debug" style="font-size:10px;color:#999187;"></div>
|
|
||||||
<svg id="analog-clock" viewBox="0 0 200 200">
|
<svg id="analog-clock" viewBox="0 0 200 200">
|
||||||
<!-- Clock face -->
|
<!-- Clock face -->
|
||||||
<circle cx="100" cy="100" r="95" fill="rgba(28,27,31,0.3)" stroke="#e6dfd1" stroke-width="2"/>
|
<circle cx="100" cy="100" r="95" fill="rgba(28,27,31,0.3)" stroke="#e6dfd1" stroke-width="2"/>
|
||||||
@@ -123,8 +122,9 @@
|
|||||||
|
|
||||||
<!-- Moon position (with phase) -->
|
<!-- Moon position (with phase) -->
|
||||||
<g id="rpg-moon">
|
<g id="rpg-moon">
|
||||||
<circle id="rpg-moon-bg" cx="100" cy="100" r="9" fill="#1c1b1f"/>
|
<circle id="rpg-moon-bg" cx="100" cy="100" r="9" fill="#b0a89a" stroke="#e6dfd1" stroke-width="1"/>
|
||||||
<path id="rpg-moon-lit" d="" fill="#e6dfd1"/>
|
<path id="rpg-moon-lit" d="" fill="#e6dfd1"/>
|
||||||
|
<path id="rpg-moon-dark" d="" fill="#54514f"/>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<!-- Clock hands (on top of everything) -->
|
<!-- Clock hands (on top of everything) -->
|
||||||
@@ -261,6 +261,7 @@
|
|||||||
var rpgSunCore = document.getElementById('rpg-sun-core');
|
var rpgSunCore = document.getElementById('rpg-sun-core');
|
||||||
var rpgMoon = document.getElementById('rpg-moon');
|
var rpgMoon = document.getElementById('rpg-moon');
|
||||||
var rpgMoonLit = document.getElementById('rpg-moon-lit');
|
var rpgMoonLit = document.getElementById('rpg-moon-lit');
|
||||||
|
var rpgMoonDark = document.getElementById('rpg-moon-dark');
|
||||||
var sunRiseArrow = document.getElementById('sun-rise-arrow');
|
var sunRiseArrow = document.getElementById('sun-rise-arrow');
|
||||||
var sunSetArrow = document.getElementById('sun-set-arrow');
|
var sunSetArrow = document.getElementById('sun-set-arrow');
|
||||||
var moonRiseArrow = document.getElementById('moon-rise-arrow');
|
var moonRiseArrow = document.getElementById('moon-rise-arrow');
|
||||||
@@ -430,7 +431,9 @@
|
|||||||
icon.innerHTML = '';
|
icon.innerHTML = '';
|
||||||
var bg = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
var bg = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
||||||
bg.setAttribute('cx', '12'); bg.setAttribute('cy', '12'); bg.setAttribute('r', '9');
|
bg.setAttribute('cx', '12'); bg.setAttribute('cy', '12'); bg.setAttribute('r', '9');
|
||||||
bg.setAttribute('fill', '#1c1b1f');
|
bg.setAttribute('fill', '#b0a89a');
|
||||||
|
bg.setAttribute('stroke', '#e6dfd1');
|
||||||
|
bg.setAttribute('stroke-width', '0.5');
|
||||||
icon.appendChild(bg);
|
icon.appendChild(bg);
|
||||||
if (phase < 0.5) {
|
if (phase < 0.5) {
|
||||||
var lit = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
var lit = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
||||||
@@ -455,15 +458,19 @@
|
|||||||
|
|
||||||
function renderRpgMoon(phase) {
|
function renderRpgMoon(phase) {
|
||||||
var r = 9;
|
var r = 9;
|
||||||
|
// Always start with empty dark path
|
||||||
|
rpgMoonDark.setAttribute('d', '');
|
||||||
if (phase < 0.5) {
|
if (phase < 0.5) {
|
||||||
var phaseAngle = phase * 360;
|
var phaseAngle = phase * 360;
|
||||||
var rx = r * Math.abs(Math.cos(phaseAngle * Math.PI / 180));
|
var rx = r * Math.abs(Math.cos(phaseAngle * Math.PI / 180));
|
||||||
var sweepFlag = phase < 0.25 ? 0 : 1;
|
var sweepFlag = phase < 0.25 ? 0 : 1;
|
||||||
|
// Lit area (right side, waxing)
|
||||||
rpgMoonLit.setAttribute('d', 'M 100 91 A 9 9 0 0 1 100 109 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 100 91 Z');
|
rpgMoonLit.setAttribute('d', 'M 100 91 A 9 9 0 0 1 100 109 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 100 91 Z');
|
||||||
} else {
|
} else {
|
||||||
var phaseAngle = (1 - phase) * 360;
|
var phaseAngle = (1 - phase) * 360;
|
||||||
var rx = r * Math.abs(Math.cos(phaseAngle * Math.PI / 180));
|
var rx = r * Math.abs(Math.cos(phaseAngle * Math.PI / 180));
|
||||||
var sweepFlag = phase > 0.75 ? 0 : 1;
|
var sweepFlag = phase > 0.75 ? 0 : 1;
|
||||||
|
// Lit area (left side, waning)
|
||||||
rpgMoonLit.setAttribute('d', 'M 100 91 A 9 9 0 0 0 100 109 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 100 91 Z');
|
rpgMoonLit.setAttribute('d', 'M 100 91 A 9 9 0 0 0 100 109 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 100 91 Z');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -570,11 +577,6 @@
|
|||||||
getMoonPhaseText(moonIllum.phase) + ' ' + Math.round(moonIllum.fraction * 100) + '%';
|
getMoonPhaseText(moonIllum.phase) + ' ' + Math.round(moonIllum.fraction * 100) + '%';
|
||||||
renderMoonPhaseIcon(moonIllum.phase);
|
renderMoonPhaseIcon(moonIllum.phase);
|
||||||
renderRpgMoon(moonIllum.phase);
|
renderRpgMoon(moonIllum.phase);
|
||||||
|
|
||||||
document.getElementById('debug').textContent =
|
|
||||||
'rpg-moon exists: ' + (rpgMoon !== null) +
|
|
||||||
' | lit: ' + (rpgMoonLit !== null) +
|
|
||||||
' | moonPos: ' + (moonPos ? Math.round(moonPos.point.x) + ',' + Math.round(moonPos.point.y) : 'null');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var startTime = Date.now();
|
var startTime = Date.now();
|
||||||
|
|||||||
Reference in new issue
Block a user