opengl 实现最小化的画图系统

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) )

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值