#  设计内容（图形部分）
---
## 对于Window类的分析
1. 该类含有相关的方法来初始化窗体对象
2. 由于GLUT函数库函数面向过程的特殊性，需要在对象创建前为相关函数与数据结构分配内存空间，该类的默认绘制函数与窗体中的图形与控件储存的数据结构使用static前缀，声明为静态函数与数据成员。
3. 通过该类的操作函数能够直接绘制相关基本图形，矩形、多边形、三角形、点、线等。但绘制的具体过程仍然通过构建Shape对象并通过相关操作将指向该对象的指针添加到储存图形的数据结构中来完成。
4. 该类提供相关接口来添加用户创建的Shape对象与Menu对象。
5. 该类通过统一的绘制引擎函数对于图形与控件分别进行绘制。控件绘制的优先级大于图形绘制的优先级。
6. 该类通过动作刷新引擎，对于刷新操作及动画操作进行统一管理。

## 对于Shape类的分析
1. 该类含有相关方法来创建与调整一个图形对象。
2. 该类含有关于图形对象的基本信息，指导绘制引擎对于图形对象进行正确的绘制。
3. 该类作为基类被像素类继承。当然也可以被其他类继承，很方便地进行拓展。
4. 对于矩形进行了特殊的优化，仅通过对角线两端点的坐标就可以绘制矩形。

## 对于Color类的分析
1. GLUT的RGB颜色的范围从0到1，该类实现了从0到255的标准值向0到1的转化。
2. 该类实现了HSV颜色系统与RGB颜色系统之间的转化。（需要整合！！！）

## 对于View2D类的分析
1. 该类是对于2D控件的基本特征的描述，将作为基类被其他具体的控件类（按钮类，输入框类）继承。
2. 绘制引擎通过该类所提供的信息对控件进行绘制。

## 对于Bar类的分析
1. 该类继承了View2D类
2. 该类将实现进度条的基本功能

## 对于fresh_screen函数分析
1. 该函数将承担颜色数据的绘制工作，将已经设置好的像素对象，启动绘制引擎最终绘制到显示屏上。
2. 该函数将记录绘制时间，并返回绘制时间，以供动作刷新引擎进行决策。
3. 该函数检测进行过计算操作后，进行绘制操作。

## 对于draw_screen函数分析
1. 该函数承担计算工作，获取目标声音数据包，执行声音数据与颜色数据的转换工作的相关操作，并且更新容器中所有像素对象的颜色。
2. 该函数将记录绘制时间，并返回绘制时间，以供动作刷新引擎进行决策。
3. 该函数检测进行过绘制操作后，进行计算操作。
