1、功能:最小化的画图系统实现的功能是能拖出直线、圆、三角形、矩形,通过右键菜单来控制所画的图形类型。
还可以通过右键菜单保存点集,将其存入txt文件中。也可以读取文件将保存的图画出来,或者清除屏幕。
2、思路:首先创建一个结构体包含点的x和y坐标,然后定义结构体数组来储存鼠标点击的点坐标,画直线,矩形以及圆时先点击一个点按住不放拖动鼠标等到鼠标放开的时候画出相应图形,其中存储的是点击的那个点以及鼠标松开时的那个点。画矩形时那两个点作为对角线的两个端点,画圆时那两个点作为一条直径进行画圆。画三角形时,首先点击一个点,再点击第二个点这时用这两个点画出一条线段。然后移动鼠标进行第三个点的选择,移动时使用鼠标所指的点作为第三个点画三角形,当点击第三个点时确定三角形。
3、相关 函数 :
void glutMouseFunc(void(*func)(int button,int state,int x,int y)); 鼠标点击函数,处理鼠标点击事件的函数包含四个参数第一个button表示鼠标上的哪个键这个变量可以是下面的三个值中的一个:GLUT_LEFT_BUTTON,GLUT_MIDDLE_BUTTON,GLUT_RIGHT_BUTTON; 第二个参数是鼠标的状态有被按下,或松开,可能取值如下:GLUT_DOWN,GLUT_UP;后两个参数是鼠标所指位置的坐标。
void glutMotionFunc(void(*func)(int x,int y)); 处理鼠标按住移动鼠标时的事件。
void glutPassiveMotionFunc(void (*func)(int x,int y) )