diff --git a/workspace/assets/js/start.js b/workspace/assets/js/start.js index 767e95db..d5f8aa4c 100644 --- a/workspace/assets/js/start.js +++ b/workspace/assets/js/start.js @@ -482,9 +482,35 @@ den anderen beiden ist es der ganze Unterschied. */ const n = Math.min(Math.floor(anteil * gesamt) + 1, gesamt); const muster = punktMuster(U, n, gesamt, GLIED_LAENGE[welcher]); + + /* JEDES GLIED SITZT AUF SEINER ZAHL, ES BEGINNT NICHT DORT + (09.09.2026, screen2). + + Filipe: "oben in der mitte ist auch mittag, die stunden sehen + bissl verschoben aus." + + Er hatte recht, und es ist ausrechenbar. Ein Strichmuster + beginnt bei Position null -- der erste Balken lief also von 12 + Uhr aus im Uhrzeigersinn weg, statt unter der Zwoelf zu stehen. + Sein MITTELPUNKT lag damit um eine halbe Balkenlaenge daneben: + + Stunde 10 von 197,92 Umfang -> 9,09 Grad + Minute 1,7 von 241,90 -> 1,27 Grad + Sekunde 0,01 von 285,88 -> 0,006 Grad + + Deshalb faellt es nur bei den Stunden auf: Neun Grad sieht man, + eineinviertel nicht. Der Fehler steckte aber in allen dreien -- + und genau so etwas faellt beim naechsten Umbau auf die Fuesse, + wenn die Glieder laenger werden. + + Eine halbe Gliedlaenge zurueck, und jedes Glied steht mittig + auf seiner Zahl. `dashoffset` ist dabei POSITIV: Ein positiver + Wert schiebt das Muster rueckwaerts (siehe die Begruendung am + Kopf weiter unten, wo es aus demselben Grund negativ ist). */ + const halb = GLIED_LAENGE[welcher] / 2; for (const el of lagen[welcher]) { el.style.strokeDasharray = muster; - el.style.strokeDashoffset = '0'; + el.style.strokeDashoffset = halb.toFixed(3); } /* DAS LETZTE GLIED, EINZELN (09.09.2026, screen5). @@ -510,7 +536,11 @@ const schritt = U / gesamt; const laenge = GLIED_LAENGE[welcher]; kopf.style.strokeDasharray = `${laenge} ${(U - laenge).toFixed(3)}`; - kopf.style.strokeDashoffset = `-${((n - 1) * schritt).toFixed(3)}`; + /* Derselbe Versatz wie bei der Reihe darunter -- sonst saesse der + Kopf um eine halbe Gliedlaenge neben seinem eigenen Glied. Zwei + Rechnungen fuer denselben Ort waren an dieser Stelle schon + einmal der Fehler. */ + kopf.style.strokeDashoffset = `${(halb - (n - 1) * schritt).toFixed(3)}`; } };