feat(D 예정노선): 지도 노선 선에 검은 테 (PLAN 600-1 · 요구 463-24)

- paintNetwork 선 그리기 = strokeCased(검은 테 + 차례 색 선) · 고름(active) · 흐림(dim) · 갈래 굵기 그대로
- 지킴 시험 551_2 에 paintNetwork 가 strokeCased · routeColor 를 쓰는지 한 줄 추가

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-30 16:10:18 +09:00
co-authored by Claude Sonnet 5.5
parent 4f69a9bd67
commit 157688a435
2 changed files with 10 additions and 3 deletions
@@ -129,8 +129,8 @@ export function paintNetwork(
context.lineJoin = "round";
network.lines.forEach((line, index) => {
if (line.vertices.length < 2) return;
context.strokeStyle = index === active ? colors.active : routeColor(index);
context.lineWidth = line.branch ? 2.5 : 3;
const color = index === active ? colors.active : routeColor(index);
const width = line.branch ? 2.5 : 3;
const path = (vertices: ReadonlyArray<Vertex>): void => {
context.beginPath();
vertices.forEach((v, i) => {
@@ -138,7 +138,7 @@ export function paintNetwork(
if (i) context.lineTo(sx, sy);
else context.moveTo(sx, sy);
});
context.stroke();
strokeCased(context, color, width); // 밝은 바탕 대비 = 검은 테(600-1 · 463-24)
};
if (dim?.line === index) {
path(line.vertices.slice(0, dim.from + 1));
@@ -183,3 +183,10 @@ def test_map_drawing_colors_fixed_and_readable_on_dark_map():
lum = _lum(blocks["light"][name])
assert (lum + 0.05) / (ground + 0.05) >= 3, name
assert (lum + 0.05) / 0.05 >= 3, name
def test_paint_network_uses_cased_route_lines():
src = (ROOT / "D03_PlanAnalysis/D03_PlanAnalysis_UI_DrawPaint.ts").read_text(encoding="utf-8")
body = src[src.index("export function paintNetwork") : src.index("export function pointLayer")]
assert "strokeCased(context, color, width)" in body
assert "routeColor(index)" in body