Qt OpenGL三维绘图

简介

OpenGL是为三维绘图提供的标准应用编程接口。

OpenGL处理的仅仅是三维绘图方面,而很少或是根本不提供图形用户界面编程方面的支持。OpenGL*应用程序的用户界面必须由其它工具包创建,比如在X平台下的Motif,在Windows平台下的微软基本类库(MFC)——或是在这两种平台下都能使用的Qt。

Qt的OpenGL模块使在Qt应用程序中使用OpenGL变的更加容易。它提供了一个OpenGL的部件类,这个部件类除了打开一个OpenGL显示缓冲,利用这个缓冲使用OpenGL应用编程接口来提供内容外,能像其它Qt部件那样的使用,。

Qt OpenGL模块的运作是一个与平台无关的Qt/C++的包装,这个包装则是和平台有关的GLX、WGL或AGL的C的应用编程接口。 其提供的功能则是和Mark Kilgard的GLUT库极为相似,但是Qt的OpenGL模块还有更多的非OpenGL特有的GUI机能,即它们都是Qt的应用编程接口。

安装

当你在X11中安装Qt时候,配置脚本将会自动检测你的系统上是否已安装了OpenGL的头文件和库,如果已正确安装了,在Qt的库中就会包括Qt OpenGL模块。(如果你的OpenGL头文件或库放置在一个非标准的目录下,你需要根据你的系统而修改config文件中的SYSCONF_CXXFLAGS_OPENGL和/或 SYSCONF_LFLAGS_OPENGL)。 对于OpenGL的一些配置需要线程生效,所以如果OpenGL没有被检测到,试一下configure -thread

当你在Windows中安装Qt时候,Qt的OpenGL模块总是被包含的。

Qt的OpenGL模块的使用没有授权给Qt专业版,如需要OpenGL支持的话,可以考虑升级为Qt企业版。

在X11上使用Mesa时请注意: Mesa 3.1之前的版本在库中使用的名为“MesaGL”和“MesaGLU”,而不是“GL”和“GLU”。如果你想使用Mesa 3.1之前的版本的话,你必须改变Makefile来使用这些库的名字。最简单的方法就是编辑config文件中的SYSCONF_LIBS_OPENGL行,将“-lGL -lGLU”改成“-lMesaGL -lMesaGLU”,然后再次运行“configure”。

QGL

在Qt中OpenGL提供支持的类为:

  • QGLWidget:一个容易使用的Qt部件,它提供了OpenGL场景。
  • QGLContext:封装了OpenGL提供的上下文。
  • QGLFormat:对于一个给定的上下文,指定特定的显示模式。
  • QGLColormap:在GL-index中处理编入索引的colormaps。

许多应用程序仅需要高等级的QGLWidget类。其它的QGL类提供了高级特性。X11的用户可能要阅读一下overlays中的注释。

参照OpenGL实例

QGL的文档假设你熟悉OpenGL编程。如果你在这方面是个新手的话,一个好的起点就是http://www.opengl.org/

*OpenGL是Silicon Graphics公司在美国和其它国家的注册商标。

时间: 2024-08-02 06:51:38

Qt OpenGL三维绘图的相关文章

QT OpenGL中文教程在QT4版本后的错误代码更改(一)

由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有不好的地方,就是我去看的时候,根本就下载不了代码~~~~可能我人品比较差吧.可以作为参考看一下. 所以选择了下面这个教程: 教程地址:QT OpenGL中文教程(http://www.qiliang.net/old/nehe_qt/index.html) 正在学习这个教程,但发现其时间过久: 根据Q

ubuntu下配置qt+opengl+opencv

原地址:http://www.cnblogs.com/aleny-liu/archive/2011/12/16/aleny-Qtnote1.html http://blog.csdn.net/jdh99/article/details/6362660  1.首先安装Qt4并采用Qt Creator进行开发演示 (1)在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designe

QT 与MFC绘图技术比较

在工控监测领域,经常需要动态绘制曲线,观察曲线的变化趋势,绘制波形图,绘制频谱等.在前面4讲中介绍了MFC经常用的TeeChart控件和Hight-Speed Chart Ctrl,这两个都是MFC绘图控件的经典(另外,在Qt中还有QwtPlot和QCustomPlot两大神器).许多人问如何绘制动态变化的曲线,为此专门写下这篇文章. C++ GUI 绘图控件目录 MFC(VC) VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入 VS2010 使用TeeChart绘图控件

Matlab 三维绘图与统计绘图

一. 三维绘图 p = 0: pi/10: 20*pi; x = cos(p); y = sin(p); z = p; plot3(x,y,z) x = -2:.2:2; %有-2为起点,2为递增步长,2为终止点 y = -1:.2:1; [xx, yy] = meshgrid(x, y); %用于从数组x和y产生网格,两矩阵大小相同 zz = xx.*exp(-xx.^2 - yy.^2); [px,py] = gradient(zz,.2,.2); %求数值梯度函数的命令 quiver(x,

PPAPI中使用OpenGL ES绘图

在PPAPI中使用Chromium的3D图形接口一文中我们介绍了怎么使用PPB_Graphics3D接口,提供了一个简单示例,单机鼠标可以变换插件颜色. foruok原创,如需转载请关注foruok的微信订阅号"程序视界"联系foruok. PPB_Graphics3D是Chromium暴露给PPAPI的3D图形接口,类似衔接Open GL和本地窗口系统的EGL.我们使用PPB_Graphics3D的Create方法来创建context,然后使用PPB_Instance的BindGra

OpenGL C#绘图环境配置

OpenGL C#绘图环境配置 OpenGL简介 OpenGL作为一种图形学编程接口已经非常流行, 虽然在大型游戏方面DirectX有一定的市场占有率, 但由于OpenGL的开放性,可移植性等优点,OpenGL已经成了一种图形学方面的标准. 由于选修了OpenGL计算机图形学编程, 上课老师用的是C的OpenGL绑定, 转而找了下其他的绑定http://www.opengl.org/resources/bindings/,有 (1)Python的 pyOpenGL: (2)C#的OpenTK(包

Android OpenGL ES绘图教程之三 : 绘制图形

在定义了将要被OpenGL绘制的形状之后,你当然想要绘制它们.使用OpenGL ES 2.0绘制图形需要的代码可能比你想象的要多,因为API提供了大量的图形渲染管道控制接口. 这一章将介绍如何使用OpenGL ES 2.0 API绘制上一章中定义的形状 1. 初始化形状 在你做任何的绘制操作之前,你都必须进行初始化和加载计划绘制的形状.除非在执行的过程中形状所在的结构(原坐标)发生变化,你应该在render中的onSurfaceCreated()方法中初始化它们以提高内存和执行效率. publi

Android OpenGL ES绘图教程之一 : 构建OpenGL ES 环境

为了在Android应用中使用OpenGL ES绘图,首先必须要创建一个view容器.一个最简单的方法是实现GLSurfaceView和GLSurfaceView.Renderer.GLSurfaceView一个view容器,用来显示OpenGL绘制的图形,GLSurfaceView.Renderer用来控制GLSurfaceView里面图形的绘制.更多的信息,请参考 OpenGL ES 开发向导. GLSurfaceView是将OpenGL ES图形用到应用的一种方式,对于全屏或者接近全屏的图

matlab的三维绘图和四维绘图

一.三维绘图1.曲线图plot3(X1,Y1,Z1,...):以默认线性属性绘制三维点集(X1,Y1,Z1)确定的曲线plot3(X1,Y1,Z1,LineSpec):以参数LineSpec确定的线性属性绘制三维点集plot3(X1,Y1,Z1,'PropertyName',PropertyValue,...):根据指定的属性绘制三维曲线theta = 0:0.01*pi:2*pi;x = sin(theta);y = cos(theta);z = cos(4*theta);plot3(x,y,