自学计算机图形学OpenGL(四)鼠标交互

该程序使用OpenGL和GLUT库创建了一个矩形,当用户按下左键并移动鼠标时,矩形会跟随鼠标位置移动。初始化设置包括窗口大小、位置、颜色缓冲和投影范围。主要函数包括显示函数myDisplay用于绘制矩形,mouseMotion函数处理鼠标点击事件,更新矩形位置。
摘要由CSDN通过智能技术生成

绘制一个矩形,鼠标点击哪它就移动到哪。

#include<GL/glut.h>

GLint w = 600, h = 500;

GLint dx = 0, dy = 0;

void myDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT); //清除当前被激活为写操作的颜色缓存
    glColor3f(0.87, 0.56, 0.4);
    glPointSize(2);
    glBegin(GL_POLYGON);//绘制多边形
    glVertex2i(10 + dx, 10 + dy);
    glVertex2i(10 + dx, 100 + dy);
    glVertex2i(100 + dx, 100 + dy);
    glVertex2i(100 + dx, 10 + dy);
    glEnd();
    glFlush();//将缓存推送到屏幕上
}

//鼠标点击
void mouseMotion(GLint button, GLint state, GLint x, GLint y)
{
    //鼠标按下左键
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
    {
        dx = x;
        dy = h - y;
        glutPostRedisplay();//重新绘制
    }
}

void init()
{
    glClearColor(1.0, 1.0, 1.0, 0.0);//设置窗口背景色
    glMatrixMode(GL_PROJECTION);//设置为正投影模式
    glLoadIdentity();//类似复位操作
    gluOrtho2D(0, w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值