运动曲线渲染模块(trajectoryCharts.ts)

模块路径:web_rviz/src/trajectoryCharts.ts

用途

在轨迹弹窗中基于 canvas 渲染可交互的运动段折线图。

公开接口

TrajectoryChartSeries

  • label:悬停提示中显示的序列名称。

  • color:该序列的折线颜色。

  • values:与 times 对齐的采样数值。

  • visible?:可选,设为 false 时不参与绘制和范围计算。

TrajectoryChartTheme

  • background:图表背景色。

  • border:外框颜色。

  • grid:网格线颜色。

  • text:主文本颜色。

  • muted:次级标签颜色。

  • accent:播放头与悬停辅助线颜色。

TrajectoryLineChartOptions

  • canvas:目标 HTMLCanvasElement

  • times:毫秒级采样时间数组。

  • series:曲线序列列表。

  • unitLabel:绘制在纵轴旁的单位文本。

  • emptyLabel:无有效数据时显示的占位文本。

  • theme:绘图使用的颜色集合。

  • playheadTime?:可选,毫秒级播放头位置。

renderTrajectoryLineChart(options: TrajectoryLineChartOptions): void

绘制或刷新绑定到 options.canvas 的图表。

行为说明

  • 通过 WeakMap 为每个 canvas 保持一份交互状态;重复调用会复用已有图表实例。

  • 自动把底层 canvas 尺寸同步到 CSS 显示尺寸,并将设备像素比上限限制为 2

  • 在绘制前会对高密度序列做抽稀,降低重绘与悬停计算开销。

  • 计算坐标范围时会忽略隐藏序列和非有限值。

  • 支持悬停 tooltip、最近序列命中,以及可选的播放头参考线。