Fix moon group transform: position relative to origin, not (100,100)

This commit is contained in:
Richard Zink committed 2026-10-07 08:16:13 +02:00
1 parent 093ca2b2b7
commit 93d26453c6
1 file changed
+3 -6
+3 -6
View File
@@ -122,7 +122,7 @@
<!-- 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="#b0a89a" stroke="#e6dfd1" stroke-width="1"/> <circle id="rpg-moon-bg" cx="0" cy="0" 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"/> <path id="rpg-moon-dark" d="" fill="#54514f"/>
</g> </g>
@@ -458,20 +458,17 @@
function renderRpgMoon(phase) { function renderRpgMoon(phase) {
var r = 9; var r = 9;
// Always start with empty dark path
rpgMoonDark.setAttribute('d', ''); 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 0 -9 A 9 9 0 0 1 0 9 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 0 -9 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 0 -9 A 9 9 0 0 0 0 9 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 0 -9 Z');
rpgMoonLit.setAttribute('d', 'M 100 91 A 9 9 0 0 0 100 109 A ' + rx + ' 9 0 0 ' + sweepFlag + ' 100 91 Z');
} }
} }