Blitz blendet zwischen zwei fertigen Fassungen über

Deine Idee war die bessere. Eine helle Fläche mit dunklem Rand ließ sich aus
einem einzelnen Symbol nur nachbauen, indem dasselbe Zeichen zweimal in
verschiedener Größe übereinander gezeichnet wurde — und die
Größenverhältnisse sahen nie stimmig aus, wie man an den drei Anläufen
sieht. Zwei fertige Fassungen ineinander zu blenden ist der geradere Weg:
gezeichnet wird genau das, was in der Datei steht.

Erst die dunkle voll deckend, dann die helle mit steigender Deckkraft
darüber. Zeichnete man beide anteilig, schiene dazwischen der Hintergrund
durch und der Blitz wirkte blass.

Ohne eigenen Rand bekommt der Blitz den vollen Innenraum des Akkus statt
Innenraum minus Rand — er ist damit wieder etwas größer, bleibt aber
innerhalb des Rahmens. Der Test hält die neue Grenze fest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-08-13 14:20:06 +02:00
parent 80b083259e
commit c990ea558b
6 changed files with 94 additions and 77 deletions

View File

@@ -237,14 +237,15 @@ struct BatteryGlyphSizeTests {
private let height = BatteryGlyph.size.height
@Test("Das Zeichen passt samt Rand in den Innenraum")
func glyphAndOutlineFitInside() {
@Test("Das Zeichen passt in den Innenraum")
func glyphFitsInside() {
// Der Fehler, um den es ging: von der Außenhöhe ausgegangen, füllte der
// Blitz den ganzen Akku und stieß an den Rahmen.
// Blitz den ganzen Akku und stieß an den Rahmen. Bezugsgröße ist der
// Innenraum der Rahmen nimmt oben und unten Platz, die Füllung sitzt
// eingerückt.
let inner = height - 2 * BatteryGlyph.fillInset
for indicator in BatteryGlyph.Indicator.allCases {
let glyph = BatteryGlyph.glyphHeight(for: indicator, in: height)
#expect(glyph + 2 * BatteryGlyph.outlineWidth <= inner + 0.001)
#expect(BatteryGlyph.glyphHeight(for: indicator, in: height) <= inner + 0.001)
}
}