Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 08:32
· 67 commits to main since this release

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 一步);同向已有邻居时自动上下分叉避让重叠(移植 Excalidraw placeCluster)。按 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 附截图。