一个基于 PyQt5 开发的交互式曲线绘制工具,支持绘制光滑曲线、调整曲线样式、保存和加载曲线等功能。
-
🎨 交互式曲线绘制
- 鼠标点击添加控制点
- 拖拽控制点调整曲线形状
- 使用 Catmull-Rom 样条算法生成光滑曲线
-
🛠️ 曲线样式调整
- 自定义曲线颜色
- 调整曲线宽度
- 显示/隐藏控制点
-
💾 文件操作
- 保存曲线数据到 JSON 文件
- 从 JSON 文件加载曲线数据
-
🖥️ 用户界面
- 工具栏快速访问常用功能
- 控制面板调整曲线参数
- 状态栏显示操作信息
- Python 3.6+
- PyQt5
- 克隆项目到本地:
git clone [项目地址]
cd DrawGraph- 安装依赖:
pip install PyQt5- 运行程序:
python main.py- 点击画布添加控制点
- 拖拽控制点调整曲线形状
- 右键点击删除控制点
- 保存:将当前曲线保存为 JSON 文件
- 加载:从 JSON 文件加载曲线
- 清除:清空画布
- 显示/隐藏控制点:切换控制点显示状态
- 选择颜色:打开颜色选择器
- 线宽滑块:调整曲线宽度(1-10)
- Ctrl+S:保存曲线
- Ctrl+O:加载曲线
- Delete:清除画布
DrawGraph/
├── main.py # 程序入口
├── main_window.py # 主窗口类
├── canvas.py # 画布类
├── utils.py # 工具函数
└── README.md # 项目说明文档
MainWindow:主窗口类,负责界面布局和用户交互Canvas:画布类,负责曲线绘制和鼠标事件处理utils:工具函数,提供数据转换功能,将对应的内容转为json对象
使用 Catmull-Rom 样条算法生成光滑曲线,该算法具有以下特点:
- 通过控制点生成平滑曲线
- 曲线经过所有控制点
- 局部控制性良好
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 发送邮件至 wqx0320@gmail.com