吉林大学软件学院计算机图形学结课题目:简单图形绘制应用程序的实现。
本项目采用 Python/Tkinter 构建,由 Copilot + GPT 完成(耗时 1h),无需配置复杂环境,开箱即用,Debug 方便,也建议同学们也使用更方便的语言和工具完成这些作业,不要再只依赖 C/C++ 了。
运行示例:
创建单文档应用程序,为应用程序创建如下结构多级菜单项(直接在应用程序默认菜单上创建):
- 图形应用
- 图形绘制
- 绘制矩形
- 绘制圆形
- 设置颜色
- 区域填充
- 绘制多边形
- 设置颜色
- 三维变换
- 绘制立方体
- 沿 X 轴方向平移
- 沿 Y 轴方向平移
- 沿 Z 轴方向平移
- 绕 X 轴旋转
- 绕 Y 轴旋转
- 绕 Z 轴旋转
- 设置数据
- 绘制曲线
- 绘制 Bezier 曲线
- 图形绘制
- 绘制矩形:选择此菜单项后,可利用鼠标在视图区绘制矩形;
- 绘制圆形:选择此菜单项后,可利用鼠标在视图区绘制圆形;
- 设置颜色:选择此菜单项后,显示对话框,在此对话框中设置绘制的矩形和圆形的颜色(可以分别设置 RGB 三颜色分量值),默认颜色为黑色(RGB三颜色分量值均为 0);
- 绘制多边形:选择此菜单项后,可通过鼠标输入顶点的方法绘制多边形,并实现边标志算法完成对该多边形的填充,要求完成使用四位数字对多边形内部进行填充。完成效果如下图所示:
- 设置颜色:选择此菜单项后,显示对话框,在对话框中设置 4 中所绘制多边形中填充的四位数字的颜色和边界颜色(如效果图中四位数字颜色为绿色,边界颜色为蓝色,可以分别设置 RGB 三颜色分量值),默认颜色为黑色(RGB 三颜色分量值均为 0);
- 绘制立方体:建立立方体的数据模型,选择此菜单项后,将该立方体在视图区中绘制出来,要求采用透视投影(投影中心自行确定,选择显示效果较好的投影中心),6 个面的每个面用不同颜色填充,投影结果应正确显示面的可见性(7-12 的变换功能在变换后进行投影的结果也是按此要求)。因为后面的功能 7 至 12 是对该立方体的变换,所以该菜单项也具有恢复立方体原始数据的效果,即不论后面的变换将立方体变换到哪个位置,都可以通过选择此项功能把立方体恢复到最初位置。如果不会消隐,立方体各面可以不用颜色填充,只画边界线即可;
- 延 x 轴方向平移:选择此菜单项后,可以通过键盘按键“A”和“L”分别使立方体延 x 轴正方向和负方向做指定步长的平移,每次平移后都要将平移 后的立方体绘制在视图区中(只保留最新位置的立方体的绘制结果,不能多次变换后,视图区出现多个立方体的投影结果),要求使用的投影为透视投影,投影中心为 6 中所使用的投影中心;
- 延 y 轴方向平移:选择此菜单项后,可以通过键盘按键“A”和“L”分别 使立方体延 y 轴正方向和负方向做指定步长的平移,每次平移后都要将平移后的立方体绘制在视图区中(只保留最新位置的立方体的绘制结果,不能多次变换后,视图区出现多个立方体的投影结果),要求使用的投影为透视投影,投影中心为 6 中所使用的投影中心;
- 延 z 轴方向平移:选择此菜单项后,可以通过键盘按键“A”和“L”分别使立方体延 z 轴正方向和负方向做指定步长的平移,每次平移后都要将平移后的立方体绘制在视图区中(只保留最新位置的立方体的绘制结果,不能多次变换后,视图区出现多个立方体的投影结果),要求使用的投影为透视投影,投影中心为 6 中所使用的投影中心;
- 绕 x 轴旋转:选择此菜单项后,可以通过键盘按键“A”和“L”分别使立方体绕 x 轴做指定角度数的正向和反向旋转,每次旋转后都要将旋转后的立方体绘制在视图区中(只保留最新位置的立方体的绘制结果,不能多次变换后,视图区出现多个立方体的投影结果),要求使用的投影为透视投影,投影中心为 6 中所使用的投影中心;
- 绕 y 轴旋转:选择此菜单项后,可以通过键盘按键“A”和“L”分别使 立方体绕 y 轴做指定角度数的正向和反向旋转,每次旋转后都要将旋转后的 立方体绘制在视图区中(只保留最新位置的立方体的绘制结果,不能多次变换后,视图区出现多个立方体的投影结果),要求使用的投影为透视投影,投影中心为 3.6 中所使用的投影中心;
- 绕 z 轴旋转:选择此菜单项后,可以通过键盘按键“A”和“L”分别使立方体绕 z 轴做指定角度数的正向和反向旋转,每次旋转后都要将旋转后的立方体绘制在视图区中(只保留最新位置的立方体的绘制结果,不能多次变换后,视图区出现多个立方体的投影结果),要求使用的投影为透视投影,投影中心为 6 中所使用的投影中心;
- 设置数据:选择此菜单项后,显示对话框,设置功能 7 至 9 的平移步长,默认步长为 1,以及设置功能 10 至 12 的每次旋转角度,默认角度 为 10 度;
- 绘制 Bezier 曲线:选择此菜单项后,可在视图区用鼠标左键单击的方式顺序输入控制点,控制点数量为 4 时绘制以鼠标输入的点为控制点的 3 次 Bezier 曲线,要求绘制出控制多边形,并标记控制点的位置(以控制点为中心绘制一个小黑色实心矩形,矩形边长为 5);
- 绘制矩形、圆形、多边形和曲线时,不能使用已有的绘图函数进行绘制,需要实现相应的图形学算法来完成绘制;
- 同组功能(功能所处的二级菜单相同)所绘制的图形要能够同时在视图区存在,不同组功能在调用前先清屏(清屏功能可设置成主动调用);
- 用于绘制图形的功能在绘制图形时应实现橡皮线功能,即可实时看到绘制效果(针对功能 1、2、4、14,对于 14 是实时看到控制多边形);
- 实现视图重画功能,即在窗口发生变化需要重新绘制时,视图区中绘制的图形仍然应该存在;

