我是靠谱客的博主 纯情菠萝,最近开发中收集的这篇文章主要介绍OPENGL中glut处理鼠标滚轮输入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

OPENGL中glut处理鼠标滚轮输入

glutMouseFunc

在OpenGL中处理鼠标事件是比较方便的,GLUT已经为我们的注册好了函数,只需要我们定义方法。使用函数glutMouseFunc,并调用自己定义的方法函数,这样当发生鼠标事件时就会自动调用我们的方法。
不过,由于默认的OpenGL库中,不含接收鼠标滚轮输入的库函数,故很多的滚轮控制缩放相关的功能实现,需要配置重构的OpenGL库。
这些资源在网上需要下载以及积分。
由于本人希望找到一种不需要CSDN的积分的方法,于是在网上找呀找呀,终于找到了一种方法。解决方案如下:

解决方案

古老的GLUT 库不支持滚轮.但是,像 FreeGLUT 这样的GLUT更高版本可以实现.

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

声明一个回调函数,每当滚动滚轮滚动时应调用该回调函数.这是原型:

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

使用(免费)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;
}

对惹,前提是有freeglut这个库,以及,在头文件中

#include <GL/freeglut_ext.h>

至此,就可以不用配置重构的OpenGL库从而实现鼠标滚轮的功能函数啦~~~
转自
[1]: https://www.itbaoku.cn/post/1641581/do
侵删

最后

以上就是纯情菠萝为你收集整理的OPENGL中glut处理鼠标滚轮输入的全部内容,希望文章能够帮你解决OPENGL中glut处理鼠标滚轮输入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部