3.1 KiB
Path Smoothing Six-Figure Report Design
Goal
Replace the current one-file, three-panel path-smoothing report with six focused, independent point-plot figures for every scenario. Preserve both SVG and 600 dpi PNG export, retain one CSV metrics file, and never connect trajectory samples with lines.
Output contract
Every scenario directory contains exactly these six figures in both .svg and .png form:
01-coarse-path-overview: raw Hybrid A* samples, map obstacles, start and coarse-path endpoint.02-all-paths-comparison: raw, B-spline, Bézier, and quintic samples together; no obstacles, start, or goal marker.03-cubic-bspline-overview: faded raw samples, B-spline samples, relevant obstacles, start and endpoint.04-local-cubic-bezier-overview: faded raw samples, Bézier samples, relevant obstacles, start and endpoint.05-piecewise-quintic-overview: faded raw samples, quintic samples, relevant obstacles, start and endpoint.06-curvature-comparison: raw and every available smoother's vehicle-curvature samples against arc length.
comparison.csv remains the single numerical report. The legacy composite comparison.svg and comparison.png are no longer emitted.
Point-only rendering
Each SmoothingFigurePoint in a displayed series becomes one circular marker. SVG must not emit a trajectory polyline/path for any figure; PNG must not call a line-drawing API for trajectory samples. Marker size is fixed in report points so 0.025 m samples remain individually visible at 600 dpi. Start and endpoint remain distinct point markers only in figures 1, 3, 4, and 5.
Raw samples are dark gray, B-spline samples blue, Bézier samples orange, and quintic samples green. A method with no geometry has no markers but remains represented by an Infeasible or Failed status in that figure's legend.
Framing and annotation
Every overhead figure derives its world bounds from the displayed path samples, then adds a fixed 10% padding with a 0.25 m minimum. The X/Y scales are equal. Obstacles are clipped by the panel rather than expanding the camera away from the path. Overhead axes show numeric ticks plus X (m) and Y (m) labels.
The curvature figure uses s (m) horizontally and κ (m⁻¹) vertically, with numeric ticks, zero axis, and displayed curvature limits. Every figure owns a compact legend describing its visible series and statuses.
Export and compatibility
The existing shared, immutable comparison data remains the source of all six figures. SVG continues to use SimSun/Times New Roman family references. PNG continues to require exact SimSun and Times New Roman and returns FontUnavailable rather than falling back. The report exporter publishes all image files atomically and cleans any temporary files if one fails.
Validation
Regression coverage verifies the six stable file stems, absence of trajectory line commands/styles, presence of all expected point markers and units, correct legends/statuses, valid PNG signature/CRC/600 dpi metadata, and no leftover .tmp files. Visual inspection covers straight, rectangle-detour, forward-reverse-switch, and an infeasible scenario.