ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OPENGL中glut处理鼠标滚轮输入

2021-11-17 11:33:32  阅读:280  来源: 互联网

标签:滚轮 鼠标 OPENGL int glut 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,int,glut,OpenGL,GLUT,函数
来源: https://blog.csdn.net/qq_45078838/article/details/121373644

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有