在GLUT中使用鼠标滚轮

时间:2020-03-05 18:40:18  来源:igfitidea点击:

我想在OpenGL GLUT程序中使用鼠标滚轮来放大和缩小场景吗?我怎么做?

解决方案

回答

请注意,著名的Nate Robin的GLUT库不支持滚轮。但是,像FreeGLUT这样的GLUT更高版本的实现就可以了。

在FreeGLUT中使用滚轮非常简单。方法如下:

声明一个回调函数,只要滚动滚轮就应调用该回调函数。这是原型:

void mouseWheel(int, int, int, int);

使用(Free)GLUT函数glutMouseWheelFunc()注册回调。

glutMouseWheelFunc(mouseWheel);

定义回调函数。第二个参数给出滚动的方向。 +1的值是正向的,-1的值是反向的。

void mouseWheel(int button, int dir, int x, int y)
{
    if (dir > 0)
    {
        // Zoom in
    }
    else
    {
        // Zoom out
    }

    return;
}

而已!