ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Lorien 无限画布应用 v0.4.0 使用手册详解:画布导航、五大工具、调色板与快捷键实战指南

Lorien 无限画布应用 v0.4.0 使用手册详解:画布导航、五大工具、调色板与快捷键实战指南 桌面应用图形学【免费下载链接】LorienInfinite canvas drawing/whiteboarding app for Windows, Linux and macOS. Made with Godot.项目地址https://gitcode.com/gh_mirrors/lo/Lorien点击查看免费下载Lorien 是一款基于 Godot 开发的开源无限画布绘图/白板应用支持 Windows、Linux 与 macOS本文以仓库中的 v0.4.0 官方手册 为骨架结合当前仓库v0.7.0-beta1的源码实现系统讲解画布操作、工具栏中的画笔/矩形/直线/橡皮擦/选择五大工具、调色板机制与全部键盘快捷键。读完本文你将能完整掌握 Lorien 的日常绘图工作流并理解每个操作背后对应的源码逻辑从而更高效地使用、配置甚至二次开发这款工具。手册定位与版本说明本手册docs/manuals/manual_v0.4.0.md是 Lorien 在 v0.4.0 阶段发布的官方使用指南覆盖从基本操作、工具使用到快捷键的全部核心交互。当前仓库代码版本为 0.7.0-beta1见 Config.gd 中的VERSION_MAJOR/MINOR/PATCH与手册相比功能上有所演进例如工具列表中新增了圆形工具、设置面板新增了更多选项但 v0.4.0 手册所讲述的核心交互模型——画布导航、五大基础工具、调色板与快捷键体系——在当前版本中全部保留并延续因此这份手册至今仍是最佳的上手指南。手册开篇特别强调绘图板Drawing Tablet受支持且是推荐输入设备但完全使用键盘 鼠标同样可以完成所有操作。这一点在源码中体现得很充分——画笔工具会读取数位笔的压感数据详见下文画笔工具一节同时为鼠标输入准备了完整的降级处理。基本画布操作绘制、平移、缩放与打开文件v0.4.0 手册定义了四条最基本的画布操作它们是后续所有工具使用的基础操作输入方式说明绘制鼠标左键LMB或数位笔笔尖在当前激活的工具下落笔平移/拖动画布鼠标中键MMB按住拖动手册作者建议把数位笔上的按键映射为中键便于单手导航缩放鼠标滚轮围绕鼠标位置缩放无限画布打开文件把.lorien文件直接拖入窗口或通过菜单打开快捷键CTRLO支持拖放与菜单两种方式从源码看画布的平移与缩放由 PanZoomCamera.gdCamera2D子类统一管理缩放时改变相机 zoom、平移时改变相机 offset。一个值得注意的细节是当检测到平移或缩放正在进行时CanvasTool.gd 会通过_eval_disable_stroke()设置disable_stroke true从而中断正在进行的笔触避免边缩放边画线产生的脏数据——这也是为什么操作中偶尔感觉笔触被截断的原因属于刻意设计。关于打开文件CTRLO对应输入映射中的shortcut_open_project动作见 project.godot 的[input]段keycode 79 即字母 O。手册中将其描述为打开新标签页原文为Open a new empty tab结合输入映射与拖放行为实际语义是打开一个文件到新标签页中。另外Main.gd 的_apply_state()会在启动时从user://state.cfg恢复上次打开的工程列表、激活标签与窗口大小这意味着你上次的绘图现场会被自动还原。工具栏与工具切换机制Lorien 的所有绘图工具都集中在工具栏Toolbar中。启用某个工具只需两种方式之一鼠标点击工具栏中对应的工具图标按键盘快捷键如B切画笔、R切矩形等。将鼠标悬停在工具图标上还会弹出包含快捷键说明的短提示。工具的启停、事件分发统一由基类 CanvasTool.gd 承担每个工具都是一个继承CanvasTool的节点通过覆写tool_event(event: InputEvent)处理输入事件set_enabled()会同步开关_process/_process_input与光标可见性因此同一时刻只有一个工具处于激活状态。工具的创建与键盘绑定定义在 project.godot 的[input]段shortcut_brush_tool、shortcut_rectangle_tool、shortcut_line_tool、shortcut_eraser_tool、shortcut_select_tool等动作工具切换的按键分发逻辑则位于 Main.gd。所有动作的按键都不是硬编码在代码里的而是通过输入映射统一管理、可在设置中重绑详见下文快捷键的底层实现一节。五大工具逐个拆解画笔工具Brush Tool画笔是 Lorien 的默认工具用于在画布上自由绘制。核心特性自由绘制用鼠标或数位笔在画布上任意作画笔刷大小可调通过工具栏中画笔大小调节器Adjuster调整默认值为 10Config.DEFAULT_BRUSH_SIZE见 Config.gd笔刷颜色可换点击工具栏中位于大小调节器旁边的彩色按钮即可切换颜色支持压感Pressure Sensitive数位笔的按压力度会实时影响笔迹粗细。源码层面BrushTool.gd 的实现相当讲究压感采样从InputEventMouseMotion.pressure读取笔压鼠标事件的 pressure 通常为 0 或负值代码会将其归一为1.0保证鼠标也能画出正常粗细的线压力曲线原始压力经过pressure_curve.sample()资源见 default_pressure_curve.tres再乘以压力灵敏度Settings.GENERAL_PRESSURE_SENSITIVITY默认1.0得到最终笔压速度衰减当压力 ≥ 0.99即鼠标或全压时会根据移动速度_current_velocity按比例衰减压力值模拟出快速划过时笔迹变细的自然手感稳定器平滑读取Settings.GENERAL_STABILIZER_STRENGTH默认0.5开启后用三次贝塞尔曲线Utils.cubic_bezier对最近三个采样点做插值平滑抑制手抖自动补点移动距离小于MOVEMENT_THRESHOLD1.0 像素时跳过采样避免冗余点单击画点_is_stroke_a_dot()会检测单击未拖动的情况累计距离 ≤ 6 像素此时会移除临时点并调用_draw_point()补画一个由 3 个点构成的小圆点保证单击也能落墨超长笔触自动分段当笔触点达到BrushStroke.MAX_POINTS1000 点时会自动结束当前笔触并新开一段——注释明确说明这是为了避免超出 GodotLine2D/多边形顶点索引上限见 BrushStroke.gd。矩形工具Rectangle Tool矩形工具用于绘制完美的未填充的空心矩形其行为与画笔有明显差异非压感矩形四边的粗细是恒定的。从源码看它读取的是Settings.GENERAL_TOOL_PRESSURE默认0.5这个固定压力值而不是数位笔的实时压感见 RectangleTool.gd实时预览按住 LMB 拖动时remove_all_stroke_points()会不断清空上次的临时矩形并重绘形成所见即所得的拉伸预览隐藏技能按住Shift拖出正方形源码中当检测到KEY_SHIFT按下时会把拖动向量投影到主轴drag_dir.project(sign(drag_dir))从而锁定为正方形——这是手册未提及、但源码明确支持的细节边角处理四条边通过add_subdivided_line()分段绘制并在四角做 2% 的偏移收尾避免角部重叠失真。add_subdivided_line()由基类 CanvasTool.gd 提供当线段长度超过 50 像素SUBDIVISION_THRESHHOLD时会按 16% 的比例将线段细分为多个采样点确保长直线在Line2D中足够平滑短线段则直接端点采样。直线工具Line Tool直线工具用于绘制完美直线按住Shift吸附 15° 增量这是手册重点强调的功能。源码中吸附步长为SNAP_STEP : deg_to_rad(90.0 / 6.0)即 15°见 LineTool.gd吸附计算先取鼠标相对起点角度 半步长再floor(角度 / 步长) * 步长从而把线的方向锁定到 15° 的整数倍上非压感与矩形工具一样使用固定压力值GENERAL_TOOL_PRESSURE实时预览按住 LMB 时尾部端点跟随鼠标移动每次移动先remove_last_stroke_point()删除旧尾点再补新尾点松开即提交整条线。橡皮擦工具Eraser Tool橡皮擦工具用于擦除已有的笔触brush stroke其余行为如大小调节、移动方式与画笔工具一致整笔触删除而非逐像素擦除这是 Lorien 橡皮擦与像素类绘图软件的最大区别——只要橡皮擦光标与某条笔触发生相交判定整条笔触就会被移除。这一点在手册中表述为Allows you to erase any brush stroke相交判定的高效实现见 EraserTool.gd。它先用预计算的笔触包围盒做粗筛BOUNDING_BOX_MARGIN 20.0的外扩边距再对笔触的每个线段调用Geometry2D.segment_intersects_circle()与is_point_in_circle()做精确的线段-圆形相交测试其中圆的半径由橡皮擦半径 该段笔触的平均压力宽度决定并乘以OVERLAP_THRESHOLD0.95容差保证视觉上与笔迹边缘贴合可撤销每擦除一批笔触会创建一个名为 Erase Stroke 的 undo/redo 动作_add_undoredo_action_for_erased_strokes()通过_do_delete_stroke/_undo_delete_stroke完成删除与恢复只处理屏幕内的笔触通过_canvas.get_strokes_in_camera_frustrum()只遍历当前视口内的笔触BrushStroke.GROUP_ONSCREEN分组保证画布上笔触很多时橡皮擦依然流畅。选择工具Selection Tool选择工具是 Lorien 的编辑核心支持框选、增选、移动、删除、复制、粘贴与复制式拖拽。完整操作语义如下操作输入行为框选按住 LMB 拖出矩形与选择矩形相交的笔触被选中加选按住Shift LMB 拖动在已有选择基础上追加笔触多选取消选择RMB或Esc清空当前选择移动选中笔触按住 LMB 拖动选中区域整组笔触跟随移动若按下 LMB 后未移动鼠标就松开则自动取消全部选择删除选中笔触Delete移除选中内容复制CTRLC复制选中笔触到内部剪贴板粘贴CTRLV把剪贴板中的笔触粘贴出来复制式拖拽DuplicateCTRLD生成选中笔触的副本并保持选中源码层面SelectionTool.gd 用一个State枚举NONE / SELECTING / MOVING驱动整个交互状态机框选判定compute_selection()对每条笔触先做包围盒相交粗筛再遍历笔触的每个点只要矩形内包含任意一个点即选中_set_stroke_selected()被选中的笔触会加入selected_strokes分组并以主题色Config.DEFAULT_SELECTION_COLOR#2a967c着色移动与自动取消MOVING状态下用_mouse_moved_during_pressed记录是否真正移动过松手时若未移动则deselect_all_strokes()与手册描述完全一致移动会登记为 Move Strokes 的 undo/redo 动作可撤销复制/粘贴的实现copy_strokes、paste_strokes、duplicate_strokes三个动作共用一段逻辑——复制把选中笔触放入strokes_copied分组粘贴/复制式拖拽则_duplicate_stroke()深拷贝这些笔触复制点序列、颜色、大小与压力数组并以鼠标光标位置为粘贴中心通过包围盒中心计算偏移量放置增选与取消的细节Shift按下时光标切到 SELECT 模式松开且存在选中项时切回 MOVE 模式框选过程中会把本次矩形内新选中的笔触与原本已选中但不在本次矩形内的笔触分组建模松手时统一提交或取消从而精确实现Shift 加选。调色板颜色管理与预设色Lorien 用**调色板Color Palette**来快速切换预定义颜色。入口与画笔颜色按钮是同一个——工具栏中位于画笔大小调节器旁边的彩色按钮点击即可打开调色板选择器ColorPalettePicker。调色板的核心规则手册 源码双重确认可增删改自定义调色板你可以新建、编辑、删除自定义调色板默认调色板不可编辑/删除内置的默认调色板被标记为builtin若想基于它定制正确做法是先复制一份再编辑副本。源码层面PaletteManager.gd 完整实现了这套规则默认调色板从 default_palette.tres 预加载固定以UUID_DEFAULT_PALETTE : defaultpalette标识、builtin true因此remove_palette()对内置调色板会直接返回失败见 PaletteManager.gd自定义调色板由create_custom_palette()/duplicate_palette()创建拥有 32 位随机 UUIDUtils.generate_uuid持久化到user://palettes.cfgConfig 中的PALETTES_PATH见 Config.gd按名称排序显示上次使用的调色板 UUID 被记录在设置项general_color_palette_uuid_last_used中见 Settings.gd下次启动自动恢复颜色选择 UI 位于 ColorPalettePicker.gd配合 PaletteButton.gd 等组件实现工具栏中的彩色按钮。键盘快捷键速查表以下是 v0.4.0 手册列出的全部快捷键并补充了当前仓库输入映射中可确认的对应动作名定义于 project.godot 的[input]段快捷键功能对应输入动作当前仓库CTRLS保存当前文件shortcut_save_projectCTRLN新建文件shortcut_new_projectCTRLO打开文件手册原描述为打开新标签页shortcut_open_projectCTRLZ撤销一个笔触shortcut_undoCTRLY重做一个笔触shortcut_redoCTRLC复制选中的笔触copy_strokesCTRLV粘贴复制的笔触paste_strokesCTRLD复制生成副本选中的笔触duplicate_strokesB切换画笔工具shortcut_brush_toolR切换矩形工具shortcut_rectangle_toolE切换橡皮擦工具shortcut_eraser_toolL切换直线工具shortcut_line_toolS切换选择工具shortcut_select_toolEsc/RMB取消全部选择deselect_all_strokesEsc/ 选择工具内置逻辑Delete删除选中的笔触delete_selected_strokesTab进入/退出专注模式隐藏全部 UItoggle_zen_modeF12在鼠标位置生成一个可沿所画线条行走的角色彩蛋toggle_player两点补充说明专注模式Zen ModeTab键切换源码 Main.gd 中_toggle_zen_mode()会同时隐藏菜单栏、状态栏与工具栏让你只看到画布本身适合无干扰地专注创作彩蛋Easteregg手册标注为F12触发。在当前仓库中该功能对应toggle_player动作见 Main.gd 与 project.godot 的[input]段按键可能随版本调整过建议在设置对话框中确认默认键位。其底层实现位于 InfiniteCanvas.gdenable_player(true)会为每条笔触用SegmentShape2D生成静态碰撞体BrushStroke.gd 的enable_collider()然后在当前光标位置实例化Player资源见 Player.tscn角色精灵帧见 Assets/Player这个 2D 角色就能真实地走在你画的线上。快捷键的底层实现输入映射与自定义绑定Lorien 的快捷键并非写死在代码里而是由一套可配置的**输入动作Input Actions**体系驱动动作定义所有快捷键在 project.godot 的[input]段声明为 Godot InputMap 动作如shortcut_brush_tool绑定 keycode 66 即字母 Bshortcut_undo绑定 Ctrl keycode 90 即 Z运行时同步KeybindingsManager.gd 在启动时遍历InputMap.get_actions()跳过ui_与player_前缀的系统动作为每个动作读取用户自定义键位Settings.get_keybinding(action.name, action.event)再通过rebind_action()把用户配置写回 InputMap实现运行时生效持久化自定义键位保存在user://settings_v4.cfg的[keybindings]段Settings.gd 的get_keybinding/set_keybinding与普通设置分离存储重绑入口在设置对话框SettingsDialog.gd的快捷键列表中可以查看每个动作的当前按键并重新绑定。因此即使你在实际使用中发现某个快捷键与手册不同例如上文提到的彩蛋键位都可以在设置中一键重绑无需修改任何代码。进阶技巧与源码级细节除了手册明文内容仓库源码还揭示了几个值得了解的实用细节压感尖峰抑制BrushStroke.gd 的add_point()会限制相邻两点间的压力差值MAX_PRESSURE_DIFF代码注释说明这是为了应对 Linux 下数位笔偶发的压力尖峰保证笔迹宽度过渡平滑工具默认压力矩形、直线等非压感工具使用的固定压力值可在设置项general_tool_pressure中调整默认0.5想统一加粗/减细这类工具的画线不必改代码笔触分段上限单条笔触最多 1000 点BrushStroke.MAX_POINTS画超长线时 Lorien 会自动分段这是 GodotLine2D索引上限决定的工程性约束属正常行为画布背景与网格当前仓库还支持画布背景色、网格样式与网格大小等外观设置appearance_*系列设置项见 Settings.gd默认画布色#202124这些在 v0.4.0 手册之后新增可在设置对话框或工具栏中调整。小结v0.4.0 手册虽然篇幅精炼却完整定义了 Lorien 的核心交互模型中键平移 滚轮缩放的无限画布导航、以画笔/矩形/直线/橡皮擦/选择为骨架的工具体系、可自定义的调色板机制以及一套基于输入映射、可自由重绑的快捷键体系。当前仓库v0.7.0-beta1的源码完整继承了这套模型并在其上加上了稳定器平滑、压感尖峰抑制、专注模式、角色彩蛋等进阶能力。对普通用户而言这份手册 本文的源码解读足以支撑你流畅地完成白板演示、草图绘制与笔记记录对开发者而言顺着 CanvasTool.gd → 各工具实现 → KeybindingsManager.gd → PaletteManager.gd 这条链路可以快速定位任何交互功能对应的实现位置进一步扩展 Lorien。赞分享桌面应用图形学【免费下载链接】LorienInfinite canvas drawing/whiteboarding app for Windows, Linux and macOS. Made with Godot.项目地址https://gitcode.com/gh_mirrors/lo/Lorien点击查看免费下载相关推荐WXT面向下一代 Web 扩展开发的框架全解析WXT面向下一代 Web 扩展开发的框架全解析 WXT 是一个定位为 Next gen Web Extension Framework 的开源框架官方将桌面应用图形学Lorien v0.6.0 无限画布绘图工具完全使用手册画笔、形状工具、调色板与快捷键全解析Lorien v0.6.0 无限画布绘图工具完全使用手册画笔、形状工具、调色板与快捷键全解析 本文是 Lorien一款基于 Godot 引擎开发的 Wind桌面应用图形学Lorien v0.1.0 使用手册精读无限画布绘图应用的基础绘制、画布导航与快捷键全解析Lorien v0.1.0 使用手册精读无限画布绘图应用的基础绘制、画布导航与快捷键全解析 本文以 Lorien 官方手册 v0.1.0 docs/manu桌面应用图形学上一篇PanSou 微博搜索插件接入指南微博用户搜索与评论 API 的 Cookie 认证、请求与解析实战下一篇2025终极指南如何用openpilot将普通汽车升级为智能驾驶座驾创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表