Slide 5: die Tiefe des Bandes kommt aus Licht statt aus Geometrie

Zwei Anlaeufe haben die Form verbogen: erst die Enden zur Spitze verjuengt,
dann um eine Knickstelle gekippt. Das erste sah aus wie eine Schleife, das
zweite wie eine Welle. Ein Absperrband ist flach und straff -- was ihm gefehlt
hat, war Woelbung, nicht ein Knick.

Jetzt quer ueber die Hoehe ein Verlauf von #F8C64A ueber #F1B729 nach #D89F1B,
knapp unter der Oberkante ein Glanzlicht, und zu beiden Enden hin 20 % Abdunkeln.
Die untere Laengskante ist einen Pixel dicker als die obere, weil sie im
Schatten der Woelbung liegt. Die Form bleibt das Rechteck, das sie auf der
Website ist.

Helm und Schrift stehen weiterhin einmal und mittig.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-27 20:16:39 +02:00
1 parent bfe6b5cb4b
commit d8b010fbdc
2 files changed
+46 -33

No files matched your search

+36 -27
View File
@@ -3332,35 +3332,44 @@ if (location.search.indexOf("nur=anim") >= 0)
const bL = (W + 2 * UEBER - bh * Math.sin(bogen)) / Math.cos(bogen);
const bA = (W - bL) / 2, bE = bA + bL;
// Wo geknickt wird, und wie stark die Enden zusammenlaufen.
const kL = bA + bL * 0.12, kR = bE - bL * 0.12;
const ein = bh * 0.10; // Verjuengung je Kante am Ende
const oT = ty, uT = ty + bh; // Ober- und Unterkante in der Mitte
const oA = ty + ein, uA = ty + bh - ein; // dieselben an der Spitze
const flaeche = (x1, o1, u1, x2, o2, u2, f) =>
'<path d="M' + n1(x1) + ',' + n1(o1) + 'L' + n1(x2) + ',' + n1(o2) +
'L' + n1(x2) + ',' + n1(u2) + 'L' + n1(x1) + ',' + n1(u1) +
'Z" fill="' + f + '"/>';
/* Die Tiefe kommt aus Licht und nicht aus Geometrie. Zwei Anlaeufe
haben die Form verbogen -- erst die Enden zur Spitze verjuengt, dann um
die Knickstelle gekippt. Beides sah nach Schleife oder Welle aus, weil
ein Absperrband nun einmal flach und straff ist. Was ihm gefehlt hat,
war Rundung: quer ueber die Hoehe ein Verlauf von hell nach dunkel, wie
auf einem Band, das leicht gewoelbt ueber der Flaeche liegt, und zu den
Enden hin ein Abdunkeln, weil sie weiter weg sind. Die Form bleibt das
Rechteck, das sie auf der Website ist. */
const oT = ty, uT = ty + bh;
const gid = "bandLicht", eid = "bandEnden";
let band =
flaeche(bA, oA, uA, kL, oT, uT, WEB.bandKnick) +
flaeche(kL, oT, uT, kR, oT, uT, WEB.band) +
flaeche(kR, oT, uT, bE, oA, uA, WEB.bandKnick);
'<defs>' +
'<linearGradient id="' + gid + '" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0" stop-color="#F8C64A"/>' +
'<stop offset="0.38" stop-color="' + WEB.band + '"/>' +
'<stop offset="1" stop-color="#D89F1B"/>' +
'</linearGradient>' +
'<linearGradient id="' + eid + '" x1="0" y1="0" x2="1" y2="0">' +
'<stop offset="0" stop-color="#000000" stop-opacity="0.20"/>' +
'<stop offset="0.22" stop-color="#000000" stop-opacity="0"/>' +
'<stop offset="0.78" stop-color="#000000" stop-opacity="0"/>' +
'<stop offset="1" stop-color="#000000" stop-opacity="0.20"/>' +
'</linearGradient>' +
'</defs>' +
'<rect x="' + n1(bA) + '" y="' + n1(oT) + '" width="' + n1(bL) +
'" height="' + bh + '" fill="url(#' + gid + ')"/>' +
'<rect x="' + n1(bA) + '" y="' + n1(oT) + '" width="' + n1(bL) +
'" height="' + bh + '" fill="url(#' + eid + ')"/>';
/* Die dunklen Laengskanten folgen dem Knick mit, sonst schwebten sie ueber
der Form. */
const kante = (a1, a2, a3, a4) =>
'<path d="M' + n1(bA) + ',' + n1(a1) + 'L' + n1(kL) + ',' + n1(a2) +
'H' + n1(kR) + 'L' + n1(bE) + ',' + n1(a4) + '" fill="none" stroke="' +
WEB.bandDunkel + '" stroke-width="4" stroke-linejoin="round"/>';
band += kante(oA, oT, oT, oA) + kante(uA, uT, uT, uA);
// Die Knickkanten selbst: eine Spur dunkler als die Flaeche daneben.
[kL, kR].forEach(kx => {
band += '<path d="M' + n1(kx) + ',' + n1(oT + 2) + 'V' + n1(uT - 2) +
'" stroke="' + WEB.bandSpitze + '" stroke-width="1.6" opacity=".7"/>';
});
/* Die dunklen Laengskanten. Die untere sitzt eine Spur dicker: dort liegt
die Kante im Schatten der Woelbung. */
band += '<path d="M' + n1(bA) + ',' + n1(oT) + 'H' + n1(bE) + '" stroke="' +
WEB.bandDunkel + '" stroke-width="4"/>';
band += '<path d="M' + n1(bA) + ',' + n1(uT) + 'H' + n1(bE) + '" stroke="' +
WEB.bandDunkel + '" stroke-width="5"/>';
// Ein heller Streifen knapp unter der Oberkante: das Glanzlicht.
band += '<path d="M' + n1(bA) + ',' + n1(oT + 9) + 'H' + n1(bE) +
'" stroke="#FFFFFF" stroke-width="2.4" opacity=".28"/>';
/* Schrift und Helm einmal, mittig auf der geraden Flaeche. Vorher lief
der Satz wiederholt ueber das ganze Band und begann links am Rand --