DeepSeek V4.1 Flash
04e98ee041
Esc 退出缩放模式、修复拖拽时波形变模糊、加速超大文件的模式切换
Esc 行为(用户要求):
- 网格内按 Esc 在取消拖拽选区的同时,退出全部缩放模式(时间轴缩放 / Y 轴缩放),
工具栏两个缩放按钮随之回到未选中态;时间光标按钮不受影响。
- 新增 PlotView::ExitZoomModes(),由 Application 的 VK_ESCAPE 分支与 CancelDrag 一起调用。
修复拖拽时波形变模糊(用户报告):
- 上一轮为提升拖拽帧率引入了"交互降级":拖拽期间关闭抗锯齿 + 顶点预算减半 +
每列只扫 32 个采样点。实测这会让包络丢掉峰值、线条失去抗锯齿,
在选区放大 / 拖拽信号 / 拖拽光标时明显变"糊"。现已**全部移除**,
任何交互期间都按全质量绘制。
- 用"粗粒度包络层"替代降级来保证交互帧率:
SignalData 新增 coarseMin/coarseMax/coarseStride(每 256 个采样一组存 min/max,
额外内存约为采样数据的 0.8%),在 BuildDataFile 统计 min/max 的同一个循环里顺带构建
(不额外扫数据)。折线包络改为读取"每列覆盖到的分组",
数据读取量从 O(可见采样数) 降到 O(像素列数 × 少量分组),**绘制结果与全量扫描完全一致**。
- 实测(VERY_BIG_DATA.CSV = 1.77GB、2580 万行 × 5 信号,全选显示):
视图变化时的包络构建由 176~196ms 降到 ≈0ms;平移拖拽整帧由约 336ms 降到 90~120ms。
- 注意:包络路径按分组判断无效值(整组无有效值才断线),
因此密集视图中孤立的 NaN 不再把波形切成两段(原先会),视觉上更干净。
加速超大文件的显示模式切换(用户报告):
- 散点绘制由逐点 FillEllipse 改为把全部散点合并进一条 GraphicsPath 后一次 FillPath:
实测 2500 点由 63ms 降到 7ms(基准),程序内单条密集信号由约 51ms 降到约 22ms,
仍是抗锯齿圆形,观感与逐点绘制一致。
- 线段/散点/点线切换时不再有卡顿感;空闲 CPU 仍为 0.00%。
验证:
- Esc:分别启用时间轴缩放 / Y 轴缩放后按 Esc,两个按钮均回到未选中(截图对比),
时间光标按钮保持选中;框选拖拽中按 Esc 时间轴保持 0.2~1.2 不变。
- 清晰度:光标拖拽中与静止时对同一区域做像素哈希,结果完全一致;
框选拖拽同样一致;信号拖拽中间态截图中源波形与虚影均为抗锯齿全质量。
- 超大文件:线段/散点/点线切换与拖拽的正常渲染(截图),1.77GB 文件加载过渡动画正常。
- 回归:菜单内联编辑 Y 轴上下限、选区 Y 轴自适应、图例点击选中、面板改名均正常。
- 内存:BIG_DATA 全选 122MB(粗粒度层约 +1MB);VERY_BIG 全选 1224MB(理论下限 1.25GB)。
- make clean && make all 零警告零错误。
2026-09-30 19:34:52 +08:00
..
2026-09-30 19:34:52 +08:00
2026-09-30 19:34:52 +08:00