198 lines
5.7 KiB
Markdown
198 lines
5.7 KiB
Markdown
# 尺寸阈值预设档位方案 A 说明
|
||
|
||
## 背景
|
||
当前项目中,辅助结果 / 选中 `polygon` 的过滤能力已经支持“尺寸阈值”输入:
|
||
|
||
- 用户输入一个尺寸值 `n`
|
||
- 实际参与过滤的面积阈值为 `n²`
|
||
- 在画布坐标中再结合当前图片缩放比例换算后执行过滤
|
||
|
||
这套方式已经可以满足精细调参,但在高频使用时,仍然存在一个体验问题:
|
||
|
||
- 用户每次都需要手动输入数字
|
||
- 常用值虽然固定,但容易忘记
|
||
- 即使理解了 `尺寸² = 面积阈值`,操作上仍然偏“参数化”而不是“工具化”
|
||
|
||
因此可以考虑引入“方案 A:尺寸阈值预设档位”。
|
||
|
||
## 方案 A 是什么
|
||
在现有“尺寸阈值”输入框旁,增加一组常用快捷档位按钮,例如:
|
||
|
||
- `8`
|
||
- `16`
|
||
- `32`
|
||
- `64`
|
||
|
||
点击任意一个档位时:
|
||
|
||
- 自动将尺寸阈值设置为该值
|
||
- 不改变现有过滤逻辑
|
||
- 用户仍然可以继续手动输入其他值
|
||
|
||
这不是替代手输,而是在手输之外增加“常用值一键设置”能力。
|
||
|
||
## 为什么考虑做
|
||
### 1. 降低操作成本
|
||
很多场景下,用户反复尝试的其实是几个相对稳定的阈值。
|
||
|
||
如果每次都手输:
|
||
- 需要点击输入框
|
||
- 输入数字
|
||
- 再触发过滤
|
||
|
||
如果有预设档位:
|
||
- 一次点击即可完成阈值设置
|
||
- 再配合 `F2` 或直接点击过滤按钮,路径更短
|
||
|
||
### 2. 降低记忆负担
|
||
当前用户需要自己记住:
|
||
- `16² = 256`
|
||
- `32² = 1024`
|
||
- `64² = 4096`
|
||
|
||
有了固定档位后,用户不需要每次重新心算或回忆常用数值,久而久之会形成稳定操作习惯。
|
||
|
||
### 3. 更符合工具型操作习惯
|
||
标注工具里高频操作通常更适合:
|
||
- 固定档位
|
||
- 一键切换
|
||
- 快速试错
|
||
|
||
而不是每次都进入“参数输入”模式。
|
||
|
||
预设档位能让这个功能更像一个成熟工具,而不是一个单纯的数值配置项。
|
||
|
||
### 4. 与当前心智模型兼容
|
||
当前已经将输入语义改成“尺寸阈值”,用户理解的是“边长感 / 尺寸感”。
|
||
|
||
在这个基础上,预设 `8 / 16 / 32 / 64` 是自然延伸:
|
||
- 数字仍然是“尺寸”
|
||
- 实际面积阈值仍然是 `尺寸²`
|
||
- 不会引入新的概念
|
||
|
||
## 为什么建议优先采用数字档位
|
||
相较于“极小 / 小 / 中 / 大”这类文字档位,数字档位更适合当前项目:
|
||
|
||
### 1. 语义更精确
|
||
`32` 就是 `32`,不会有解释歧义。
|
||
|
||
而“中”在不同用户理解里可能对应:
|
||
- 16
|
||
- 24
|
||
- 32
|
||
- 48
|
||
|
||
### 2. 与现有输入框保持一致
|
||
当前输入框本身就是数值输入,预设按钮如果也是数值,用户的认知路径最短。
|
||
|
||
### 3. 便于后续沟通与复现
|
||
当团队成员交流时,可以直接说:
|
||
- “试一下 16”
|
||
- “32 过滤得更合适”
|
||
- “这批图用 64 比较稳”
|
||
|
||
这比说“用中档”更容易复现与共享经验。
|
||
|
||
## 建议的预设档位
|
||
建议初始只放 4 个:
|
||
|
||
- `8` → 实际面积阈值 `64`
|
||
- `16` → 实际面积阈值 `256`
|
||
- `32` → 实际面积阈值 `1024`
|
||
- `64` → 实际面积阈值 `4096`
|
||
|
||
原因:
|
||
- 数量少,不会挤占工具栏空间
|
||
- 都是 2 的幂,容易记忆
|
||
- 能覆盖从较小噪声到较大碎片区域的大多数场景
|
||
|
||
如果后续真实使用中发现跨度不够,再考虑补充:
|
||
- `24`
|
||
- `48`
|
||
- `96`
|
||
|
||
但第一版不建议一开始就放太多。
|
||
|
||
## 如果要做,准备怎么做
|
||
### UI 位置
|
||
建议放在现有 `TopTools` 中“尺寸阈值”输入框旁边,保持同一区域:
|
||
|
||
- 输入框仍然保留
|
||
- 预设档位按钮放在输入框右侧或下方
|
||
- 当前选中的档位可以有高亮态
|
||
|
||
### 交互行为
|
||
建议行为如下:
|
||
|
||
1. 点击某个预设档位
|
||
- 直接把尺寸阈值设置为该值
|
||
- 同步更新输入框显示
|
||
- 不自动执行过滤
|
||
|
||
2. 用户随后:
|
||
- 点击“过滤”按钮,或
|
||
- 按 `F2`
|
||
|
||
这样可以和当前交互习惯保持一致,避免点击预设后立刻修改结果,减少误操作。
|
||
|
||
### 状态同步
|
||
预设档位只是“设置输入值”的快捷方式,因此状态仍然复用现有尺寸阈值:
|
||
|
||
- 不需要新增一套独立过滤逻辑
|
||
- 不需要新增第二套 store 字段
|
||
- 只需要在 UI 层加上档位按钮和“当前档位是否命中”的判断
|
||
|
||
### 提示文案
|
||
建议鼠标悬浮时展示:
|
||
- 当前尺寸值
|
||
- 对应面积阈值
|
||
|
||
例如:
|
||
- `32(面积阈值 1024)`
|
||
- `64(面积阈值 4096)`
|
||
|
||
## 做了之后的好处
|
||
### 1. 高频场景效率更高
|
||
对于常用阈值,用户几乎不再需要键盘输入。
|
||
|
||
### 2. 功能更容易被理解和使用
|
||
一些用户即使理解了“尺寸阈值”的概念,也未必愿意频繁输入参数。
|
||
|
||
预设档位会明显降低上手门槛。
|
||
|
||
### 3. 更适合形成团队共识
|
||
如果多人协作标注,预设档位更容易沉淀成经验值:
|
||
- 某类图片常用 `16`
|
||
- 某类图片常用 `32`
|
||
- 某类图片常用 `64`
|
||
|
||
### 4. 不破坏现有能力
|
||
因为手动输入仍然保留,所以:
|
||
- 精细调参能力不丢
|
||
- 只是新增一个更顺手的入口
|
||
|
||
## 风险与注意点
|
||
### 1. 工具栏空间会更紧张
|
||
如果按钮做得太多,会挤压现有工具布局。
|
||
|
||
因此第一版建议:
|
||
- 只放少量档位
|
||
- 使用较紧凑的按钮样式
|
||
|
||
### 2. 不宜默认自动过滤
|
||
点击档位后如果立刻执行过滤,会让用户难以控制操作时机。
|
||
|
||
建议保留“设置值”和“执行过滤”两个动作分离。
|
||
|
||
### 3. 预设值不一定覆盖所有场景
|
||
所以必须保留手动输入作为兜底方式。
|
||
|
||
## 当前结论
|
||
方案 A 值得考虑,原因是:
|
||
- 实现成本不高
|
||
- 不会改动底层过滤逻辑
|
||
- 对高频操作的收益明确
|
||
- 与当前“尺寸阈值”心智模型完全兼容
|
||
|
||
但当前阶段不急于实现,先记录方案,后续根据你的使用体验再决定是否上线。
|