# GESP等级：二级 | GESP Python 二级考点
"""
================================================================
  课程: 画图编辑器 —— EasyGUI + turtle + 函数
  项目: 16_综合项目 / 第2节_画图编辑器
  难度: ★☆☆☆☆ → ★★★☆☆ (三层挑战)
================================================================

【项目概述】
  利用 Python 的 turtle 模块作为画布引擎，配合 EasyGUI 提供友好
  的图形界面交互，打造一个功能完整、可操作的画图编辑器。
  用户可以通过菜单选择绘图工具、颜色、画笔大小，在画布上自由创作，
  最后将作品保存到本地文件中。

【核心知识点】
  1. turtle 模块
     - 基础绘图指令 (forward, backward, left, right)
     - 画笔控制 (penup, pendown, pensize, pencolor)
     - 屏幕事件绑定 (onscreenclick, onclick)
     - 图形绘制 (circle, dot, goto)
     - 画布输出 (getcanvas, postscript)

  2. EasyGUI 图形界面
     - buttonbox()        → 工具选择菜单
     - choicebox()        → 颜色 / 尺寸选择
     - integerbox()       → 数值输入
     - filesavebox()      → 文件保存对话框
     - msgbox() / ccbox() → 提示 / 确认框

  3. 函数式编程
     - 功能模块化: 每个工具对应独立函数
     - 参数化设计: 颜色、大小、位置作为参数
     - 回调函数: 事件驱动的绘图逻辑

【三层挑战结构】

  第一关 ★☆☆☆☆  基本画图
    在 turtle 画布上实现点击画点、拖动画线、
    绘制基础图形（圆形、矩形、三角形），
    体验事件驱动的绘图思维方式。

  第二关 ★★☆☆☆  添加选项
    引入 EasyGUI 菜单系统，让用户自由选择:
    · 绘图工具 (画笔 / 圆形 / 矩形 / 星形 / 三角形)
    · 画笔颜色 (红 / 蓝 / 绿 / 橙 / 紫 / 黑)
    · 画笔粗细 (1~10)
    用函数组织所有功能，代码结构清晰。

  第三关 ★★★☆☆  保存作品
    在第二关基础上增加:
    · 保存作品为 EPS 矢量文件
    · 清空画布重新开始
    · 退出确认
    · 底部功能按钮区域
    完成一个真正可用的简易画图程序。

【操作流程】
  启动程序 → 选择工具 → 选择颜色 → 设置大小 → 在画布上绘图 → 保存作品

【运行环境】
  - Python 3.7+
  - 依赖库: turtle（内置）, easygui（需安装: pip install easygui）

【学习建议】
  - 从第一关开始逐关阅读和运行，理解代码是如何一步步完善的。
  - 每一关都是前一关的升级，对比差异能加深对「增量开发」的理解。
  - 尝试修改关键参数（颜色值、图形大小、画布尺寸），观察变化。
  - 挑战进阶：在第三关基础上自己添加「撤销」「橡皮擦」「文字工具」。
"""
