资源简介
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脚本
相关资源
- Qt之自绘制日历控件(三)
- Qt之自定义检索框
- Qt之QComboBox定制二
- qt之QComboBox定制
- Qt之USB热插拔
- 基于物联网实验验环境的温湿度实时
- 电子相册--QT
- Qt:Windows编程—DLL注入与卸载 demo
- Windows编程—代码修改系统时间 demo
- Qt实现Winsock网络编程—非阻塞模式下
- Qt使用WM_COPYDATA消息进行进程通信 de
- qt图书馆系统
- Qt5--登录后进入主窗口
- 计算机图形学机器人绘制opengl
- ok6410开发板写的密码锁
- qt写的简单的tcp服务器程序代码windo
- Qt Chart波形静态显示
- QT5 实时曲线绘制
- 基于QT的MP3压缩算法
- Qt继承关系图,qt5
- linux的Qt设置系统时间
- qtconcurrent 多线程并发处理
- QT应用内切换语言
- QT学生管理系统
- QT串口,重点解决了串口接收数据分包
- QT 多线程TCP服务器与客户端
- Qt点线效果源码
- 使用opengl画桌子+球+地板
- 三维激光扫描点云配准
- 图像识别检测人数
评论
共有 条评论