博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数矩阵OpenGL中glFrustum()和gluPerspective()的相互转换
阅读量:5158 次
发布时间:2019-06-13

本文共 1692 字,大约阅读时间需要 5 分钟。

在写这篇文章之前,xxx已经写过了几篇关于改函数矩阵主题的文章,想要了解的朋友可以去翻一下之前的文章

    OpenGL中glFrustum()和gluPerspective()的互相转换

    OpenGL中在窗口的巨细发生变化的时候会发触resize()函数,这里会传入一个新的宽和高,在resize()函数中我们会置设影投矩阵,在可以应用OpenGL基本函数glFrustum()函数和glu函数gluPerspective()函数。网上绍介两个函数系联比较少,所以自己研讨呗。

    OpenGL函数glFrustum是建立一个平截头体的函数,在建立影投矩阵的时候应用。glu的gluPerspective()函数是对OpenGL基本函数glFrustum()的封装。两者供给的参数也不一致,那么gluPerspective()函数又是如何对glFrustum()函数停止封装呢?面下是两个函数的声明:

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

    要解理两者间的系联,还得研讨它们的理原。面下是两个函数的理原图:

    每日一道理
只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。

    

    解理了这些关系以后以可就列出两者之间的转换关系了。

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 );}

    如果出于某种原因法无应用glu库,那么就应用代替法方和glFrustum()函数吧。

文章结束给大家分享下程序员的一些笑话语录: 有一天,一个男人穿越森林的时候,听到一个细微的声音叫住他。他低头一看,是一只青蛙。

“如果你亲我一下,我会变成一个美丽的公主哦。”男人一言不发,把青蛙捡起来,放入口袋。
“如果你亲我一下,我会变成一个美丽的公主哦。而且,我会告诉我遇到的每一个人,你是多么聪明和勇敢,你是我的英雄。”男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一星期。”男人又把青蛙拿出来,对着它微微一笑,把它放回口袋。
“如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一年,而且你可以对我做任何事。”再一次,男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
  最后,青蛙无力地问:“我开出了这么好的条件,为什么你还不肯吻我?”男人说:“我是一个程序员,我可没时间和什么公主鬼混。不过,拥有一个会说话的青蛙,倒是蛮酷的。”

转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/28/3049849.html

你可能感兴趣的文章
Corosync 配置描述
查看>>
JAVA中类、实例与Class对象
查看>>
svn_linux + apache 实现网页访问svn
查看>>
leetcode 58. length of last word
查看>>
C++随笔(2)
查看>>
周浩晖 - 鬼望坡(2014年11月25日)
查看>>
servlet+jdbc+fckeditor网络留言板
查看>>
JavaScript 对象
查看>>
三、运算符和保留字、内建函数
查看>>
【ABAP系列】SAP ABAP同时显示多个ALV的方法
查看>>
TEdit的 Clear 和 赋值 ''
查看>>
【C#学习笔记3】C#面向对象相关知识2
查看>>
Linux内核 TCP/IP、Socket参数调优
查看>>
代理模式与AOP
查看>>
C++ ADO 数据查询
查看>>
matlab 非平稳变化时域分析
查看>>
HBase性能优化方法总结(四):数据计算
查看>>
洛谷 P1002 过河卒
查看>>
The JavaScript this Keyword
查看>>
var $this = $(this)
查看>>