Uhr: jedes Glied sitzt auf seiner Zahl, statt dort zu beginnen
Filipe (screen2): "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 zwoelf Uhr aus im Uhrzeigersinn weg, statt unter der Zwoelf zu stehen. Sein MITTELPUNKT lag damit um eine halbe Gliedlaenge 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 so etwas faellt beim naechsten Umbau auf die Fuesse, sobald die Glieder laenger werden. Deshalb ist es fuer alle drei behoben, nicht nur dort, wo es stoert. Eine halbe Gliedlaenge zurueck, und jedes Glied steht mittig auf seiner Zahl. Der Kopf bekommt denselben Versatz aus derselben Zahl -- zwei Rechnungen fuer denselben Ort waren an dieser Stelle schon einmal der Fehler. GEMESSEN an den gezeichneten Bildpunkten, alle zwoelf Plaetze, Kanten im 0,05-Grad-Raster gesucht und daraus die Mitte gerechnet: 0,13 · 29,95 · 59,85 · 89,92 · 119,85 · 149,97 · 180,13 210,23 · 240,35 · 270,32 · 300,27 · 330,35 Soll sind 0, 30, 60 ... 330. Groesste Abweichung 0,35 Grad, und die Vorzeichen wechseln -- das ist Messrauschen bei weichen Kanten, kein Versatz. Vorher lagen dieselben Mitten bei 9,1 · 39,1 · 69,1 ... Geprueft: pruef-start-ansicht -- gruen. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -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)}`;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user