QT gluPerspective 报错

添加库的解决办法

在一些系统平台, 由于版本或者系统原因,出现找不见gluPerspective的错识。 这主要是由于缺少glut模块的原因, 在网上有一些直接添加对应动态库, 静态库和头文件 的方法, 可以通过
http://download.youkuaiyun.com/detail/li235456789/9481990 这个下载 放在QT安装或源码编译目录的/bin/ (这为对应dll动态库) /lib/(这为对应静态库) 以及 /include/(这为对应头文件) 目录下面。


接口函数互换的解决办法

然后非源码编译而是安装包安装的 QT 是为.a的链接库, 这时的lib库就没法加进去了。 这时就提供了另一种解决方法。就是把gluPerspective 函数进行对应的转换。

glFrustum(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble zNear,GLdouble zFar);

gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar);

这是可以转换两个接口函数的原模型。 其实 gluPerspective 函数就是对glFrustum 的封装, 具体的转换代码为:

void MyPerspective( GLdouble fov, GLdouble aspectRatio, GLdouble zNear, GLdouble zFar )
{
    // 使用glu库函数,需要添加glu.h头文件
    //gluPerspective( fov, aspectRatio, zNear, zFar );


    // 使用OpenGL函数,但是需要添加math.h头文件
    GLdouble rFov = fov * 3.14159265 / 180.0;
    glFrustum( -zNear * tan( rFov / 2.0 ) * aspectRatio,
              zNear * tan( rFov / 2.0 ) * aspectRatio,
              -zNear * tan( rFov / 2.0 ),
              zNear * tan( rFov / 2.0 ),
              zNear, zFar );
}

原理分析

可以看出,gluPerspective进行封装后,是简单了不少。

而为什么可以这么转换呢?

下面是原理的分析:

图1.
这里写图片描述

图2.
这里写图片描述

从上图可以看出,对应的转换是通过,几何立体图形的计算得出来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小K小Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值