Repository navigation
v0.2.0
v0.2.0
两个月、214 个 commit 的一次大版本:绘图能力对齐 Excalidraw(手绘风逐行对齐 rough.js 4.6.6、
elbow 直角连线、多边形节点编辑、徒手墨迹),新增流程图 / mermaid / 图表 / 自动保存 / 选区导出,
底层完成 egui 0.29 → 0.36 与 core 架构整固。首个正式版(此前只有 alpha 预发布)。
下载:Windows x64 / Linux x64 / Linux aarch64 / macOS universal(各平台 zip 或 tar.gz),随附 SHA256SUMS。
绘图
- 手绘风对齐 rough.js 4.6.6:抖动幅度改用 rough.js 的
maxRandomnessOffset = 2画布px ×roughnessGain公式(小图衰减、短线衰减一并继承)、bowing 每次随机符号(消除"吹气感")、 Architect/Artist 端点精确不抖、hachure 填充四件套(49° 仰角、半宽线、完整双线抖动、随机相位)、 椭圆自适应采样 + 随机起始相位、solid 填充顶点跟随抖动、箭头两翼改抖。 - 四档 sloppiness(规整 / 建筑 / 艺术家 / 漫画家)替代原来的开关,档位差异肉眼可辨。
- 徒手绘制(freedraw):新增「自由绘制」工具(
P/Num7),按运笔速度给出「收笔尖、运笔粗」 的锥形墨迹(egui 无压感输入,以点间距作速度代理);落笔时 Catmull-Rom 重采样平滑;选中可改 颜色与粗细。 - 多边形节点编辑:
Alt+单击删顶点、Alt+拖端点延伸出新顶点、把端点拖回起点 8px 内 自动闭合成多边形(并可再拖开自动恢复开放);闭合处首尾重合点视作一个点,圆滑模式接缝 无回钩。 - 线性对象:直线与箭头统一为一条折线模型;端点吸附图形边缘并以锚点绑定(端点钉在目标表面同一处,不随矩形移动而沿边滑动);整条线贴合图形时自动建绑定,
Ctrl+Z一步撤回。 - elbow 直角折线(线性对象第三种边角模式,流程图连线默认):
- 中间正交段(bar)可拖平移走线,拖近端点自动钳住不出回钩;
- 多顶点 elbow 走顶点锚定 bar 纯函数推导——拖顶点即平移整根横/竖段,拖到与邻居对齐
折线自动变直(对齐免费获得,无需 Excalidraw 那套共线检测簿记); - 双击连线任意处插入顶点(走线不变),插入后顶点可拖、
Alt+单击可删; - 复用矩形圆角档位给直角拐角倒角,渲染 / 命中同源。
- 形状与样式:调色板对齐 Excalidraw(描边与填充同 5 色)、填充不透明度滑块(默认 50%)、 矩形圆角、闭合多边形工具(点击加点、双击或回车闭合)。
- 编组 / 解组:
Ctrl+G/Ctrl+Shift+G,点击组内任一成员即选整组、整体移动/复制/对齐分布。 - 对齐与分布:6 向对齐 + 4 种分布(等距 / 等心 × 横向 / 纵向),在右侧属性栏与右键菜单。
文字
- 新增文字工具(工具栏「T」/
Num8):单击画布即在落点起自由文本,起完自动回到选择工具。
双击职责归位给元素编辑——双击图片仍是适配视图、双击封闭形状 / 文本仍编辑其内容、双击
elbow 线插入顶点,不再冒出文本便签。 - 文字绑定形状:封闭形状内文字支持水平/垂直对齐、字号、字体族;手写体为内嵌的 851 远星夜行
(字体文件 deflate 压缩随包分发,运行时解压)。 - 文字默认无背景色,背景矩形跟随实际排版结果。
流程图 / 图表 / mermaid
- 流程图创建与导航:单选矩形/椭圆/菱形按
Ctrl+方向立即克隆出同类型同大小同配色的新节点并连一条两端绑定的箭头(连按接链,一条 undo 一步);同向已有邻居时自动上下分叉避让重叠(移植 ExcalidrawplaceCluster)。按Alt+方向沿连线跳到该方向的邻居节点。 - mermaid 代码转流程图:右键「Mermaid 图表…」贴入
flowchart TD/graph LR文本即可生成分层布局的流程图。支持节点外形[]/()/((/{/([/[[/[(/{{/>/ 引号标签、边标签-->|是|与-- 是 -->、箭头族---/-.->/==>/<-->、一行多分支a --> b & c;解析错误报出行号且输入保留。 - 两列数据粘贴成图表:在 Excel / 表格软件里框选「标签 + 数值」两列复制,画布
Ctrl+V→ 选柱状或折线,生成在视口中心(一条 undo)。矢量渲染,缩放不糊。 - 自动保存:打开的
.prz静置 30 秒无操作即在同目录写.prz.autosave(不覆盖原文件); 重新打开时若检测到更新的 autosave 会询问恢复或忽略。间隔可在设置面板调整。
画框与演示
- 画框支持编号(插入式顺移重编号)、框选连带成员、常用比例预设(16:9 / 16:10 / 4:3 / 3:2 / 1:1 + A4 竖/横,中心锚定套用)。
F5进入演示模式:全屏、视口适配到画框、方向键翻页。
导入 / 导出
- 导出选区对话框(
Ctrl+Shift+E):实时预览、透明背景开关、PNG / SVG / 复制到剪贴板, 分辨率 @2x。矢量元素(形状、手绘风曲线、箭头、图表)首次真正进导出——此前逐像素采样导出 只处理位图。 - 图片导入拖放 / 菜单 /
Ctrl+V;裁剪框跟随旋转、裁剪遮罩不再闪黑;水平/垂直翻转、灰度、 取色器、不透明度;布局整理(MaxRects 装箱)。
界面
- 明暗两套主题(Light / Dark / Auto),左下悬浮 HUD 一键切换,Auto 按当前生效外观显示。
- 工具栏与属性栏改为悬浮 bar(
T/N显隐,带滑入滑出动画);底部状态栏移除。 - 右侧调色板对齐 Excalidraw:内联色块 + Colors / Shades / Hex 三层弹层,文字与填充可「跟随形状」。
- 属性面板的数值改分档步进器,新增 z 序上移 / 下移一层。
- 框选采用 CAD 语义:左→右为窗口选择、右→左为交叉选择。
- 缩放套件:
Shift+1显示全部、Shift+2缩放到选中、Shift+3回 100%;右下角缩放 HUD 可直接输入数值。 - 缩放范围 10%–1000%;滚轮缩放手感按 glow 后端重新对齐。
- 拖拽修饰键:
Ctrl+拖动复制并移动副本、Shift+拖动水平/垂直约束、Ctrl+D原位复制。 Ctrl+C/Ctrl+X/Ctrl+V复制 / 剪切 / 粘贴;Ctrl+Z/Ctrl+Y撤销重做。- 中 / English 双语,toast 提示与后台进度条全部走 i18n(此前切英文仍会弹中文)。
- 默认风格总开关:新建元素默认手绘(草绘)或规整(规整),左下 HUD 与设置面板均可切换。
内部
- egui / eframe 0.29 → 0.36,backend 由 wgpu 切换为 glow(显式关闭默认 features 绕开 wgpu),获得上游字体渲染与 tessellation 改进。
- rusqlite 0.31 → 0.40(捆绑 SQLite 3.45 → 3.53.2)。
- 架构整固:
ViewportState等纯领域决策下沉到preferz-core,egui 坐标边界收口到单一ViewportEgui桥接层;preferz_app.rs(9230 行)拆为 12 个子模块。全程零行为改动。 - 移除
.bee兼容层,只保留.prz(SQLite + 内嵌附件);移除零引用依赖。 - CI 增加
cargo fmt/clippy -D warnings门禁;发布产物覆盖 Windows x64、Linux x64、Linux aarch64、macOS universal(lipo 合并)并附 SHA256SUMS。
破坏性变更
- 不再支持
.bee格式,只读写.prz。与 BeeRef 的.bee不兼容(列结构与主键均不同,需用本应用重新导出)。 - 旧
.prz存档向后兼容:新字段一律serde(default),items 表加列走ALTER TABLE就地迁移。
本版全部条目已过一轮人工 cargo run 观感验收(含 egui 0.36 升级后的 GUI 回归与 rusqlite 0.40的真实 .prz 往返)。若发现观感问题,欢迎开 issue 附截图。