一个简易的openGL交互式绘图系统,实现了绘图的基本功能,可以绘制简易的图形。
- 空心图形的绘制
- 点
- 线
- 矩形
- 三角形
- 圆形
- 其他多边形
- 曲线
- 颜色
- 黑
- 白
- 红
- 绿
- 蓝
- 画笔大小
- 小(2)
- 中(6)
- 大(10)
- 变换
- 平移变换
- 旋转变换(旋转中心为画面右下角)
- 缩放变换
-
裁剪
-
清屏
-
退出
-
填充颜色(并没有做)
- 三角形在确定完第一个顶点后按下中键再确定第二个顶点,点击后拖动绘制三角形。
- 绘制多边形和曲线时,当需要确定图形已经绘制完成不需要增加新的控制点,可以按下空格进行确定。
- 为了防止开启或者切换菜单的误触键盘的F1键可以开启或者关闭锁定,锁定状态下不能进行任何交互。
- 使用裁剪时,先将鼠标从欲裁剪区域左上拖动至欲裁剪区域右下,后按下f进行裁剪,随后即可随意裁剪。
- q键切换至平移变换,上下左右键控制;w键切换至旋转变换,上下键进行控制;e键切换至缩放变换,上下键进行控制。
==可在头文件function.h中查看所有函数以及全局变量==
- main.cpp 主函数与初始化函数以及相关全局变量.
- display.cpp 所有绘制图形的函数以及所有图形的存储结构的定义.
- Menu.cpp 建立菜单与设置部分简单菜单功能,可以自行添加更多的菜单项,例如更多的颜色和更细致的画笔大小.
- Mouse.cpp 所有控制所有图形绘制时的鼠标交互.
- MouseMove.cpp 部分需要拖动绘制的图形的鼠标拖动交互函数.
- KeyBorad.cpp 所有键盘控制函数,包括普通按键与特殊按键,可以根据ASCII码表自行修改.
- LinearScanConversion.cpp 所有线性扫描函数,包括直线的扫描转换,圆的扫描转换,尽管并未全部使用.
- BezierCurve.cpp 贝塞尔曲线的扫描转换,系统中曲线均为贝塞尔曲线.