opengl学习——绘制图形
来源:互联网 发布:射雕英雄传 知乎 编辑:程序博客网 时间:2024/05/22 02:24
- 概要
- QT5 需要加的模块
- 实例运行效果图
- 实例代码
- 部分函数接口的解释
- glLoadIdentity
- glBegin
- glVertex3f x y z
- glViewport 0 0 GLintwidth GLintheight
- glMatrixMode
- glLoadIdentity
- gluPerspectiveGLdouble fovyGLdouble aspectGLdouble zNearGLdouble zFar
- glFrustumGLdouble leftGLdouble rightGLdouble bottomGLdouble topGLdouble zNearGLdouble zFar
- 主要使用方法
概要
QT5 需要加的模块
opengl是一个模单独的模块,所以在使用时,应该在pro里面添加对应的模块。
QT += opengl
实例运行效果图
实例代码
.h文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
.cpp文件代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
部分函数接口的解释
1.glLoadIdentity();
当您调用glLoadIdentity()之后,您实际上将当前点移到了屏幕中心,X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。OpenGL屏幕中心的坐标值是X和Y轴上的0.0点。中心左面的坐标值是负值,右面是正值。移向屏幕顶端是正值,移向屏幕底端是负值。移入屏幕深处是负值,移出屏幕则是正值。
2.glBegin(…)
这里是绘制什么图形的接口,比如说绘制三角形可以用glBegin(GL_TRIANGLES), 而多边形使用
glBegin(GL_QUADS) 其它的点线等可以参考下面的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
这里需要说明的是在绘制的时候,需要以glBegin(…) 以 glEnd() 结束。
3.glVertex3f( x, y, z );
x,y, z 表示在一个三维空间里面的坐标。
4.glViewport( 0, 0, (GLint)width, (GLint)height );
重置当前的视口(Viewport)
5.glMatrixMode( …);
选择矩阵模式, 主要用得多的是投影矩阵 和 模型观察矩阵
- 1
- 2
- 3
6.glLoadIdentity();
重置矩阵,这里主要功能是把坐标移动到原点,好进行后续的操作。
7.gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar);
设置投影矩阵
8.glFrustum(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble zNear,GLdouble zFar);
设置投影矩阵, 需要讲一下的是, gluPerspective 和 glFrustum功能 是一样的, 准确的说, gluPerspective 是glFrustum的封装, 它们的关系我将在另一篇博客中进行讲解。而gluPerspective在一些平台或版本上找不到,这时就应该用glFrustum进行转换。
主要使用方法
void paintGL();
void resizeGL(int width, int height);
这两个函数是父类的虚函数, 我们主要是通过重写这两个函数,来进行对应图片的绘制, 在绘制的过程中调用对应的接口,然后通过相应的坐标计算来实现最后的图片绘制
- opengl学习——绘制图形
- opengl学习笔记(五)——绘制复杂图形
- opengl学习笔记(五)——绘制复杂图形
- OpenGL ES(3)——绘制图形
- openGL—绘制简单二维图形
- R语言图形绘制学习——图形叠加绘制
- OpenGL学习三:绘制矢量图形模型
- 学习OpenGL(三)绘制螺旋状图形
- 学习OpenGL(四)绘制直线图形
- OpenGL学习(2)基本图形绘制
- [OpenGL]图形的绘制——多边形面
- [OpenGL]图形的绘制——平面多面体
- opengl 绘制简单图形
- OpenGL绘制简单图形
- OpenGL简单图形绘制
- OpenGL---绘制简单图形
- OPENGL基本图形绘制
- OpenGL 绘制二维图形
- Spring事务配置的五种方式
- [ 转]堆和栈的区别
- 怎样学习PHP
- LeetCode 66. Plus One
- Win10下GCC编译器的安装与配置
- opengl学习——绘制图形
- Javascript原型相关的函数
- 关于JAVA中文乱码
- domino处理ajax传中文或特殊字符问题
- 让SourceTree也能Export文件
- 如何控制订单发料后不能删除组件
- Matlab 图像处理 形态学 腐蚀 膨胀 开闭运算 连通分量
- smokeping告警配置
- Android adapter设计模式三:聊天界面