简单绘画板(一、设计)

功能设计

  • 可以在画板区域内画任意线条或者点彩。
  • 可以选择画笔和颜色。
  • 整个绘画过程可以被录制。
  • 录制的绘画过程可以重放。
  • 录制的绘画过程可以导入/导出。 进阶功能
  • 加入橡皮擦功能

使用设计

对于用鼠标在绘画板和控制面板之间不停切换的过程难道不令人厌倦吗?我的使用设计不需要控制面板,一切右键搞定,画笔不离画板。

  • 在画板空白区域,右键,可以选择:画线还是点彩。
  • 在画线过程中,右键,可以选择画笔和颜色。
  • 在点彩过程中,右键,可以选择画笔和颜色。
  • 录制选项可选,选中后会出现类似播放进度条,录制结束时,可以自动播放,也可以拖动。

可行性思考

  • 需要Canvas组件
  • 需要Canvas响应鼠标事件
  • 需要Canvas绘制下拉菜单
  • 需要绘制进度条

已知:Canvas组件及其鼠标响应已经找到参考文档,一般基础图形的绘制也有现成的方法。
未知:可能由于不熟悉tkinter,不知道是否有现成的丰富组件可用,否则,下拉菜单、进度条等需要重新造轮子。但是,理论上,都可以实现。 难点:

   - 画线条需要实时地获取鼠标坐标。
   - 鼠标操作比较复杂,易出错。
   - 对鼠标单击时的坐标要进行判断来选择将要进行的操作。

鼠标操作设计

单击左键:
在画线状态下:如果按键不抬起,画线。
在点彩状态下:按键抬起时,画点。
单击右键:
出现菜单,但有多种情况:
在画面空白处单击:选择画线/点彩菜单
在画线状态下单击:选择画笔和颜色及切换到点彩。
在点彩状态下单击:选择画笔和颜色及切换到画线。
单击任何按键,都要首先清除已画的下拉菜单。 在菜单中点击鼠标后,不再进行绘制。

逻辑: 单击左键----->(如果画线状态)清除下拉菜单,开始读取鼠标坐标,实时绘制。
|--->(如果点彩状态)清除下拉菜单。 松开左键----->(如果画线状态)停止读取鼠标坐标,停止画线。 |--->(如果点彩状态)画点。 单击右键----->(如果画线状态)清除下拉菜单。
|---->(如果画点状态)清除下拉菜单。
松开右键----->(如果画线状态)画线下拉菜单。
|---->(如果画点状态)画点下拉菜单。

实施步骤

  • 完成右键和绘制的基本功能。
  • 考虑到很多人没有进行本地化操作,或者没有使用tkinter进行本地化,学习把python编译为可执行文件的方法。
  • 加入录制功能。
  • 加入橡皮擦功能。
  • 对画板上的鼠标形状和菜单上的选项绘制图标。