fix(B06): balloon 지시선을 평균운반거리 수평선 중앙에 맞춤

지시선이 블록 정점(극값)을 가리키고 있어 측점선과 수평선이 만나는 자리를 찍는
꼴이 됐다. balloon이 설명하는 대상은 정점이 아니라 그 띠의 평균운반거리
수평선이므로 앵커를 그 선의 한가운데로 옮긴다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-02 17:40:52 +09:00
co-authored by Claude Opus 5
parent 25d0c69b7d
commit 0826015a76
@@ -429,7 +429,10 @@ function appendBandBalloon(
const height = lines.length * LINE_HEIGHT + PAD_Y * 2;
const baseY = box.y(band.level_base_m3);
const apexY = box.y(band.level_apex_m3);
const anchorX = box.x(block.apex_m);
// 지시선은 **그 띠의 평균운반거리 수평선 한가운데**를 가리킨다. 정점(극값) 위치를 쓰면
// 측점선과 수평선이 만나는 자리를 찍게 되어 무엇을 가리키는지 읽히지 않는다
// (2026-08-02 사용자 지적). balloon이 설명하는 대상은 정점이 아니라 그 수평선이다.
const anchorX = box.x((band.haul_from_m + band.haul_to_m) / 2);
const anchorY = (baseY + apexY) / 2;
const upward = block.direction === "forward";
const home = findSlot(