摘 要: 本次毕业设计已经完成。实现了一个完整的图形学系统,功能包括初始化/重置画布,保存画布,设置画笔颜色,绘制线段,绘制多边形,绘制椭圆,绘制曲线,对图元的平移、旋转、缩放和对线段的裁剪。系统实现了上述功能的算法、在CLI下使用文件输入调用上述功能的接口以及在GUI下使用鼠标事件进行绘图以及图元编辑的功能。
关键词: 图形学系统;图元算法;文件输入;鼠标交互;GUI
目录
1 语言、开发环境以及框架 1
2 数据结构 1
2.1 图元 2
2.2 GUI框架 3
2.3 CLI类 3
3 图元绘制、变换算法原理、实现及分析 4
3.1 线段的DDA算法 4
3.2 线段的Bresanham算法 6
3.3 中点椭圆算法 8
3.4 多边形的绘制方法 11
3.5 Bezier曲线的绘制 12
3.6 B样条曲线的绘制 15
3.7 图元的平移 17
3.8 图元的旋转 17
3.9 图元的缩放 18
3.10 线段的裁剪的Cohen-Sutherland算法 20
3.11 线段的裁剪的梁友栋-Barsky算法 24
4 框架设计 26
4.1 CLI设计 27
4.2 命令行文件的读取和执行 27
4.3 GUI设计 29
4.4 鼠标交互进行图元绘制及变换 30
5 其他功能 41
5.1 拖动画布边界以调整画布尺寸 41
5.2 显示曲线控制点并随时拖动控制点以调节曲线 41
References: 43
1 语言、开发环境以及框架
本程序使用python3.7编写,在windows运行;图形界面部分使用tkinter框架。