Linien: modulares Segment-System (Strich/Punkt/Luecke) + Loop-Vorschau

Der Linien-Editor ist modular: eine Linie ist eine geordnete, loopende Folge
aus Segmenten Strich (Laenge), Punkt (Dot) und Luecke (Laenge) — beliebige
Sequenzen (Volllinie/Strichlinie/Punktlinie/Strich-Punkt als Presets, plus
frei), die Schluss-Luecke ist die letzte Luecke. Datenbasis bleibt
LineStyle.dash (mm, alternierend); ein Punkt ist ein 0-Laengen-AN-Segment.
Enthaelt dash eine 0, wird die Linie mit runder Kappe gezeichnet, damit
Punkte als Dots erscheinen (Live + Print; GL/DXF Folgearbeit). Neue reine
Segment-Logik in ui/lineSegments.ts. LineSwatch zeigt den ersten Loop dunkel
und 2 weitere grau (Loop-Kontext). 14 neue Tests, 127 gruen.
This commit is contained in:
2026-07-04 01:21:04 +02:00
parent f09ba0e49f
commit a302d512d9
10 changed files with 433 additions and 60 deletions
+13 -2
View File
@@ -567,10 +567,21 @@ export const en: Record<TranslationKey, string> = {
"resources.random.reroll": "Re-roll",
"resources.stroke.solid": "Solid",
"resources.stroke.dash": "Dash",
"resources.dash.segments": "Segments (mm)",
"resources.dash.hint": "Alternating dash/gap in mm (e.g. 1, 2 = 1 mm dash, 2 mm gap).",
"resources.dash.segments": "Segments",
"resources.dash.hint": "Ordered, looping sequence of dash/dot/gap (mm). The last gap is the spacing to the next loop.",
"resources.dash.add": "Segment",
"resources.dash.remove": "Remove segment",
"resources.linePreset.label": "Pattern",
"resources.linePreset.solid": "Solid",
"resources.linePreset.dash": "Dashed",
"resources.linePreset.dot": "Dotted",
"resources.linePreset.dashDot": "Dash-dot",
"resources.seg.dash": "Dash",
"resources.seg.dot": "Dot",
"resources.seg.gap": "Gap",
"resources.seg.addDash": "+ Dash",
"resources.seg.addDot": "+ Dot",
"resources.seg.addGap": "+ Gap",
"resources.hatchKind.vector": "Vector",
"resources.hatchKind.image": "Image",
"resources.lines.parallel": "Parallel",