资源简介
QT-opengl窗体,实现了 1.绘制立方体, 2.读取点云并显示 3.相机可以进行简单旋转,旋转速度可以渐渐变缓 4.可以半透明(融合)演示。

代码片段和文件信息
#include “qscarletopenglinterface.h“
#include
#include
#include
#include
#include
#include
#include
#include
//=====Eigen
#include
#include
//=====std
#include
#include
#include
#include
//========opencv
#include
#include
#include
using namespace cv;
using namespace Eigen;
using namespace std;
//Qt5 把 OpenGL 1~4 的版本的接口自己封装了,所以很多第三方库的 gl 函数在 Qt 编译环境下都无法 link 到
qScarletOpenglInterface::qScarletOpenglInterface(QWidget*parent)
:QOpenGLWidget(parent)
{
}
//这里定义了三个数组,它们描述的是和光源有关的信息
//如果没有环境光,未被漫射光照到的地方会变得十分黑暗。
//第二行有关lightDiffuse的代码使我们生成最亮的漫射光。所有的参数值都取成最大值1.0。它将照在我们木板箱的前面,看起来挺好。
GLfloat lightAmbient[4] = { 0.5 0.5 0.5 1.0 };
GLfloat lightDiffuse[4] = { 0.5 0.0 1.0 1.0 };
GLfloat lightPosition[4] = { 0.0 0.0 2.0 1.0 };
GLuint fogMode[3] = { GL_EXP GL_EXP2 GL_LINEAR };
GLfloat fogColor[4] = { 0.618 0.0 0.1 1.0};
GLfloat BGColor[4] = { 0.0 0.0 0.0 1.0};
int stdstrToi(std::string NumStr)
{
std::stringstream stream(NumStr);
int int_temp;
stream >> int_temp;
return int_temp;
}
double stdstrTod(std::string NumStr)//三个重载函数
{
std::stringstream stream(NumStr);
double double_temp;
stream >> double_temp;
return double_temp;
}
std::vector StrSplit(std::string str std::string pattern)//又来了,分割字符串
{
std::string::size_type pos;
std::vector result;
str += pattern;//扩展字符串以方便操作
int size = str.size();
for (int i = 0; i {
pos = str.find(pattern i);
if (pos {
std::string s = str.substr(i pos - i);
result.push_back(s);
i = pos + pattern.size() - 1;
}
}
return result;
}
void qScarletOpenglInterface::Start()
{
qDebug()<<“QOpengl Start!“;
setWindowtitle(tr(“opengl demo“));
fullscreen=false;//不全屏
if (fullscreen)
showFullScreen();
rTri = 0.0;
rQuad = 0.0;
xRot =yRot=zRot =0.0;
zoom = -10.0;//-5.0
xSpeed = ySpeed = 0.0;
filter = 0;
ligtht = false;
blend = false;
fogFilter = 0;
//下面是增强现实
//cam.open(0);
//clk.start(30);
//Qobject::connect(&clk SIGNAL(timeout()) this SLOT(updateWindow()));
}
void qScarletOpenglInterface::InitialOrigion()
{
try
{
m_camera.open(0);
}
catch(...)
{
m_camera.open(1);
}
glEnable( GL_TEXTURE_2D );
glShadeModel(GL_SMOOTH);
glClearColor( 0.618 0.0 0.1 0.5 );//红绿蓝
glClearDepth(1.0);//设置深度缓存
glEnable(GL_DEPTH_TEST);//启用深度测试。
glDepthFunc(GL_LEQUAL);//所作深度测试的类型。
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST);//真正精细的透视修正。这一行告诉OpenGL我们希望进行最好的透视修正。这会十分轻微的影响性能。
glMatrixM
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3029 2017-09-13 18:55 qscarletopenglinterface.h
文件 28763 2017-09-13 20:30 qscarletopenglinterface.cpp
----------- --------- ---------- ----- ----
31792 2
- 上一篇:libzbar-0.dll
- 下一篇:MCJ脚本
相关资源
- OpenGL参考手册
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- OpenGL文档,api大全,可直接查询函数
- C 餐厅叫号系统(QT平)
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- QT 实现文件下载
- qt图像处理
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- QT,JPEG解码源代码(已完成)
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- Qt 播放音频文件
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- OPENGL实现世界上最小的3D游戏
- MQTT推送Demo
评论
共有 条评论