Skip to content

Repository files navigation

DrawAim

DrawAim 是一款离线 Windows 绘画基本功训练软件,目标是用可复现的题目和与采样率基本无关的评分,持续训练线条控制、观察复制与颜色判断。

界面语言为简体中文,支持鼠标左键、WPF Stylus 数位笔输入、压力笔宽、高 DPI、深浅主题和本地历史记录。软件不联网,不上传笔迹。

三种训练模式

模式一:线条跟随

  • 每题只有一条目标线和一笔答案。
  • 画布内任意位置按下左键或笔尖即可作答;起点与推荐方向只是提示。
  • 第一次抬笔立即自动提交,不能补画第二笔。
  • 正向与反向按相同几何标准评分。
  • 可配置直线/C 线/S 线的单独生成或相对权重、方向范围、长度和曲率。
  • “你的作答笔宽”只改变玩家笔迹显示;“目标参考线宽”只改变待描线显示,两者独立,均不改变中心轨迹评分。
  • 默认每道新题生成一个与上一题不同的新 Seed;勾选“锁定 Seed”后,才按 Seed、题号和设置复现确定性题目序列。
  • 结算包含准确度、覆盖率、平滑度和多余笔迹。

模式二:观察复制

  • 左侧为参考方格,右侧为玩家方格。
  • 可以撤销、重做和清空,由玩家手动提交。
  • 支持固定数量或 1~10 随机数量范围,以及三种线型权重、长度范围、曲率范围和是否相交。
  • 只比较提交时最终可见的中心线几何;不评价落笔顺序、方向、速度、停顿或分笔方式。
  • 重复描画同一几何不会增加正确权重,也不能稀释额外错误线的惩罚。

模式三:颜色匹配

  • 使用色相环、HSV 饱和度/明度方块和大型中灰试色画布。
  • 提交时只把当前选中色作为答案,试色笔迹不参与颜色得分。
  • 使用 OKLab 感知色差计算接近度,并报告明度、感知彩度、HSV 饱和度、HSV 明度和色相偏差。

模式一、模式二的浅色主题使用纯白画布和黑色玩家笔迹;深色主题使用深色画布和浅色玩家笔迹。切换主题时,已经提交但尚未清空的答案也会安全重绘。模式三为了避免主题干扰颜色判断,始终使用中性灰试色画布,笔迹颜色由玩家当前选中色决定。

笔迹稳定 0~100

  • 0:完全旁路,不进行几何防抖。
  • 1~24:轻微。
  • 25~49:中等。
  • 50~74:明显。
  • 75~99:强。
  • 100:极强且有明显跟随感。

稳定器是只读取当前笔历史输入的因果滤波器,不读取目标、不吸附、不自动拉直或补全。显示与评分使用同一条稳定后中心轨迹。模式一和模式二会把是否使用稳定辅助写入成绩记录。

快速启动

运行已发布版本时,直接启动:

.\artifacts\publish\win-x64\DrawAim.exe

从源码运行:

powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\run.ps1

仓库优先使用项目内 .dotnet-sdk。若该目录不存在,需要 .NET SDK 10.0.302,或 global.json 所允许的同一 10.0.3xx feature band 更高补丁版本。

构建、测试与发布

# Release 构建
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\build.ps1

# 自动化测试
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\test.ps1

# win-x64 自包含单文件发布
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\publish.ps1

解决方案使用 .NET 10、C#、WPF,且核心算法不引用 WPF 类型。项目不依赖第三方运行库,完成还原后可以离线构建。

本次实际构建、78 项自动化测试、发布物哈希和 GUI 冒烟证据见 BUILD_REPORT.md

默认快捷键

操作 快捷键 模式
暂停/继续 Space 全部
下一题/跳过 N 全部
撤销 Ctrl+Z 模式二、模式三试色
重做 Ctrl+Y 模式二、模式三试色
清空 Delete 模式二、模式三试色
提交 Enter 模式二、模式三
返回/关闭覆盖层 Esc 全部

模式一没有本题撤销、重做和清空,因为玩家主动抬笔就是提交。系统失焦、捕获丢失或窗口变化造成的中断不计分。

评分原理

  • LineScoreV1:对玩家线与目标线分别进行弧长重采样,综合双向点到折线距离、目标覆盖、相对目标的额外抖动和多余长度/折返;不按设备原始点索引比较。
  • MultiLineScoreV1:比较归一化方格中的最终几何并集,以双向距离、唯一几何占据和多分辨率距离场综合评分;不做整体平移、旋转或缩放对齐。
  • ColorScoreV1:把 sRGB 转为 OKLab,以 ΔEOK 计算接近度;HSV 差只用于可理解的维度报告,不替代感知总评分。

评分、生成器和稳定器都有版本号。会改变历史成绩语义的算法修改必须升级版本,不能静默混排成绩。

LineGeneratorV2 对相邻题目的方向、位置、长度、曲率和曲率符号做确定性分层,再在各分层内部随机取样;正常路径与安全降级路径使用同一套多样性序列。这样既保留锁定 Seed 后的复现能力,也避免受限设置连续降级时反复生成同一条线。

设置与历史

默认数据目录:

%LOCALAPPDATA%\DrawAim

主题、三种模式的全部训练参数、Seed、Seed 锁定状态、笔刷和稳定值都会保存。未锁定 Seed 只保存最近使用值,下一道新题仍会自动换新;锁定后才复现确定性序列。设置、历史和日志均只保存在本地。测试或便携场景可以设置环境变量 DRAWAIM_DATA_ROOT 重定向数据目录。损坏的 JSON 会先备份,再恢复安全默认值。

工程结构

src/DrawAim.App             WPF 界面、输入桥接和绘制控件
src/DrawAim.Core            几何、稳定、生成、评分和颜色算法
src/DrawAim.Infrastructure  设置、历史和本地日志
tests/DrawAim.Tests         无第三方依赖的自动化测试程序
scripts                     构建、测试、运行和发布脚本

更完整的产品规则、算法约束和验收矩阵见 DrawAim_项目开发文档.md

验证边界

当前 win-x64 发布版已在 Windows 10 Pro 22H2(19045.3803)、1920×1080、100% DPI 上实际运行;还用 900×480 DIP 紧凑窗口验证了三种模式的可达布局。Windows 11、2K、125%/150%/200% 实际 DPI、跨屏 DPI、实体数位板和压感尚未实机验证。

Windows 10 Home/Pro 已结束微软支持;微软当前的 .NET 10 支持矩阵只列出仍受支持的 Windows 10 LTSC/Enterprise 版本。因此本机 Windows 10 Pro 22H2 的结果代表实测可运行,不代表微软官方支持承诺。详见 .NET on Windows 支持矩阵

About

一个绘画训练软件,代码含AI生成,训练项目就三个,线条稳定性,视觉临摹线条,色彩模仿。目前只有中文

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages