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
侵删

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值