修复色域拖拽回弹、网格 GX 拖拽重排、均值滤波多阶与逐信号条目
1. 自定义颜色面板:拖动时鼠标移出控件不再"弹回去"
- 根因是选点位置每帧都从 RGB 反推:色相 1 与 0 是同一个颜色(红),拖到色相条底部
下一帧反推回 0,指示条弹到顶部;拖到色域方块右下角之外时明度为 0(黑色),
黑色的饱和度无定义,反推得 0,选点弹到最左边。
- 现在把"选点位置(饱和度/明度)与色相"作为独立状态保存,只由对应控件与外部改色维护;
越界一律夹取到最近边界,因此鼠标离开控件后选点停在边界上。
- 统一色域方块、色相条、预览色块与色号框的圆角;RGB 滑块适当加粗;
色域选点去掉外圈深色描边(只保留白色描边),色相指示器改为白色描边的圆角长方条、
底色取该位置的颜色;色相条改用分段线性渐变绘制。
2. 网格 GX 编号支持拖拽重排
- 按住网格图例左侧的 GX 徽标即可上下拖动,整块网格(连同波形与标尺)跟随鼠标移动;
途经的网格保持自身大小、整体让出一格,目标槽位有吸附高亮提示。
- 松开后真正重排并从下到上/从上到下重新编号,信号列表徽标、图例徽标、菜单与浮动面板
中所有 GX 编号同步更新;手动排布后切换为自定义划分,后续重建网格不会打乱次序。
- 拖动期间复用静态场景缓存,按网格条带平移贴图,因此大文件下依然流畅。
3. 均值滤波升级为"均值点数 X + 阶数 N"
- 原"均值点数 N"更名"均值点数 X",新增"阶数 N":预览曲线以 X 点均值滤波的结果为蓝本,
再重复同样的滤波共 N 阶(1 阶即与原来的单次滤波逐位一致)。
- 浮动面板改为逐信号条目:第一排是信号名与复选框,第二排是均值点数与阶数输入;
只有勾选的信号才绘制预览曲线,未勾选时不显示第二排;启用功能时默认只勾选第一个信号。
- 参数按信号保存(同一网格内不同信号可用不同参数),「构建为新信号」按各自参数构建。
This commit is contained in:
1 parent
2d029fb09b
commit
bc8db72f18
8 files changed
+1138
-181
No files matched your search
@@ -250,14 +250,16 @@ namespace jdi
|
||||
bool ApplyPendingMeanFilterBuild();
|
||||
|
||||
/**
|
||||
* @brief 把一条均值滤波派生信号插入数据层并同步各视图。
|
||||
* @brief 把一条多阶均值滤波派生信号插入数据层并同步各视图。
|
||||
* @param [IN] fileIndex 原信号所属文件下标。
|
||||
* @param [IN] signalIndex 原信号下标。
|
||||
* @param [IN] radius 均值滤波半径 N。
|
||||
* @param [IN] points 均值点数 X(滑平半径)。
|
||||
* @param [IN] order 阶数 N(迭代次数)。
|
||||
* @param [IN] makeVisible 是否在当前标签页中勾选新信号。
|
||||
* @return 构建并插入成功返回 true。
|
||||
*/
|
||||
bool BuildMeanFilterSignal(int fileIndex, int signalIndex, int radius, bool makeVisible);
|
||||
bool BuildMeanFilterSignal(int fileIndex, int signalIndex, int points, int order,
|
||||
bool makeVisible);
|
||||
|
||||
/**
|
||||
* @brief 弹出文件选择对话框并加载所选文件。
|
||||
|
||||
Reference in new issue
Block a user