项目实战:Qt+OSG三维点云引擎(支持原点,缩放,单独轴或者组合多轴拽拖旋转,支持导入点云文件)
需求
开发基于osg的三维点云引擎模块。
1.基于x,y,z坐标轴。
2.可设置原点,设置缩放比例。
3.可设置y轴和z轴单位。
4.三轴中,XY为2D图的水平、竖直方向;Z轴,对应高度图中的double型高度。
5.引擎中心可设置。
6.可设置引擎中心点,可以拽拖绕中心点旋转模型。
7.可以单独以引擎中心点绕X,Y,Z轴旋转,拽拖时旋转.
8.可以组合XY,XZ,YZ轴旋转,拽拖时旋转。
9.根据输入的bmp图片以及建模的txt高度文件,呈现点云。
10.可复位坐标系,可清楚导入的点云。
附赠功能:
11.支持导入图片,随机高度进行点云模拟。
12.支持导入cvs点云文件(当前仅解析点)。
体验下载地址
CSDN免积分下载地址:https://download.csdn.net/download/qq21497936/16388051
QQ群下载地址:1047134658(点击“文件”搜索“osg3D”,群内与博文同步更新)
Demo






Demo部分源码
#ifndef OSGWIDGET_H
#define OSGWIDGET_H
/************************************************************\
* 控件名称: osg3D点云定制
* 控件描述:
* 1.基础三维框架
* 2.可设置中心点
* 3.鼠标中键按下后可移动中心点
* 4.支持导入bmp,bmp+z文件,cvs点云文件
* 5.支持清空数据,复位视角等操作
* 作者:红模仿 联系方式:QQ21497936
* 博客地址:https://blog.csdn.net/qq21497936
* 著作权信息
* 作者:红胖子(AAA红模仿)
* 公司:长沙红胖子网络科技有限公司
* 博客专家地址:blog.csdn.net/qq21497936/article/details/102478062
* 联系方式:QQ(21497936) 微信(yangsir198808)
* 版本信息
* 日期 版本 描述
* ... ... ...
* 2021年04月02日 v2.0.0 3D点云导入,XYZ周固定旋转,复位,清空
导入文件格式支持导入bmp,定制bmp+z,cvs文件
\************************************************************/
#include <QWidget>
#include "OsgViewerWidget.h"
#include "MyManipulator.h"
class AnimationPathCameraMainpulator;
namespace Ui {
class OsgWidget;
}
class OsgWidget : public QWidget
{
Q_OBJECT
public:
explicit OsgWidget(QWidget *parent = 0);
~OsgWidget();
public:
bool getFixXAxis() const;
void setFixXAxis(bool fixXAxis);
bool getFixYAxis() const;
void setFixYAxis(bool fixYAxis);
bool getFixZAxis() const;
void setFixZAxis(bool fixZAxis);
public:
bool loadFile(QString imageFile, int minZ, int maxZ);
bool loadFile(QString imageFile, float z);
bool loadFile(QString imageFile, QString cloudZFile);
bool loadFile(QString cvsFile, QColor color);
void clear();
void resetCoordinate();
protected:
void initOsg(); // osg初始化
void loadNode(osg::ref_ptr<osg::Node> pNode);
// 加载场景根节点
protected:
osg::ref_ptr<osg::Node> create3DPointCloud(); // 创建总场景
osg::ref_ptr<osg::Node> createAxisAndGrid(); // 创建坐标轴和线格
osg::ref_ptr<osg::Node> createTickLabel(); // 创建坐标轴的tickLabel和单位
osg::ref_ptr<osg::Node> createCloud(std::vector<osg::Vec3> &vectorVec3Vectex,
std::vector<osg::Vec4> &vectorVec4VectexColor);
// 创建点云
protected:
void resizeEvent(QResizeEvent *event);
void keyPressEvent(QKeyEvent* event);
void keyReleaseEvent(QKeyEvent* event);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseDoubleClickEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void wheelEvent(QWheelEvent* event);
private:
Ui::OsgWidget *ui;
private:
OsgViewerWidget *_pViewer; // osg场景嵌入Qt核心类
osg::ref_ptr<osg::MatrixTransform> _pRoot; // osg场景根节点
private:
float _xDistance; // x轴单个tick间距
int _xTickNumber; // x轴tick数(例如:5的时候,是6个,0~5)
float _yDistance; // y轴单个tick间距
int _yTickNumber; // y轴tick数(例如:5的时候,是6个,0~5)
float _zDistance; // z轴单个tick间距
int _zTickNumber; // z轴tick数(例如:5的时候,是6个,0~5)
QString _zUnit; // z轴单位
float _zTickLabelOffset; // z轴坐标偏移
QString _yUnit; // y轴单位
float _zTickUnitLabelOffset; // z轴坐标偏移
QColor _gridColor; // 轴颜色
QColor _labelColor; // 轴tickLabel的颜色
osg::ref_ptr<osg::Node> _pNode; // 模型
osg::ref_ptr<MyManipulator> _pManipulator; // 自定义漫游器
osg::Vec3d _eyeVect3D; // 原始坐标,用于复位原始视角
osg::Vec3d _centerVect3D; // 原始坐标,用于复位原始视角
osg::Vec3d _upVect3D; // 原始坐标,用于复位原始视角
};
#endif // OSGWIDGET_H
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115416147
项目实战:Qt+OSG三维点云引擎(支持原点,缩放,单独轴或者组合多轴拽拖旋转,支持导入点云文件)的更多相关文章
- Python+Django+ansible playbook自动化运维项目实战☝☝☝
Python+Django+ansible playbook自动化运维项目实战☝☝☝ 一.入门引导 DevOPSDevOps(英文Development和Operations的组合)是一组过程.方法 ...
- 项目实战:Qt手机模拟器拉伸旋转框架
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- 项目实战:Qt+Ffmpeg+OpenCV相机程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- QT5 QSS QML界面美化视频课程系列 QT原理 项目实战 C++1X STL
QT5 QSS QML界面美化视频课程系列 QT原理 项目实战 C++1X STL 课程1 C语言程序设计高级实用速成课程 基础+进阶+自学 课程2 C语言程序设计Windows GDI图形绘 ...
- 【阿里云产品公测】云引擎ACE新手实战基于Wordpress
[阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语 ...
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码) 转 https://blog.csdn.net/lhl1124281072/article/details/800 ...
- 【大话QT之十六】使用ctkPluginFramework插件系统构建项目实战
"使用ctkPluginFramework插件系统构建项目实战",这篇文章是写博客以来最纠结的一篇文章. 倒不是由于技术都多么困难,而是想去描写叙述一个项目架构採用ctkPlugi ...
- 从0使用Ruby on Rails打造企业级RESTful API项目实战之我的云音乐
本节对我们项目实现的功能和知识点做一个简单的介绍,因为是RESTful API项目,所以对于后端来说基本上没有什么UI界面可展示,那我们就在关键的点,使用客户端(Android)实现的效果图. 课程简 ...
- 项目实战:Qt+C#轨道交通行业高性能高流畅度模拟火车移动图像控件
需求 高清线阵相机扫描火车并自动切割单节车厢完成图像合成.通过视频图像处理组件流畅模拟火车行驶整个过程的视频图像: 1.模拟火车通过时的滚动图像,图像主要以两侧和顶部图像的预览为主; 2.模拟 ...
- Unity3D项目实战笔记(5):延时功能的几种实现
我所做过的系统,分单机版系统(2005年).CS系统(2010年).实时系统(2015年),各个系统均有“延时”功能:定时调度的: 本博客说的是实时系统中的延时功能(基于Unity3D游戏引擎). 在 ...
随机推荐
- [转帖]Linux常用的一些命令,看你知道多少?
https://zhuanlan.zhihu.com/p/115279009 Linux中命令有很多,而Linux系统中使用命令也是它的一大特点.在Linux系统中使用命令处理问题灵活,高效,所以熟知 ...
- [转帖]Docker相关的概念和原理
https://www.jianshu.com/p/9737cbe33304 chroot chroot就是可以改变某进程的根目录,使这个程序不能访问目录之外的其他目录.Docker是利用Linux的 ...
- [转帖]RPC 框架架构设计
github地址:https://github.com/xiaojiesir/mini-rpc RPC 又称远程过程调用(Remote Procedure Call),用于解决分布式系统中服务之间的调 ...
- OpenEuler切换内核的方法-bcc学习后续
OpenEuler切换内核的方法 摘要 昨天使用OpenEuler 22.03 LTS学习bcc但是一直不行. 没办法切换到CentOS8 还有 Anolis 8 很容易就可以直接还是用了 yum i ...
- 【k哥爬虫普法】简历大数据公司被查封,个人隐私是红线!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...
- 在不同电脑间同步pycharm的配置
备份文件同步法 最传统的方法就是把配置文件备份,然后在其它电脑上通过导入的方式来恢复,这种方法在很多软件中都实测可行. 具体对应到pycharm中,可以在pycharm菜单栏file - export ...
- el-select添加全部选项
/**给返回的搜索条件插入全部**/ global.addAll = function (list) { let addAllList = list addAllList.unshift({label ...
- c#树结构转npoi复杂表头
Vue 前端框架框架中采用树结构打印表头,为了前后端适配NPOI导出. 这里重点做树结构转换 NPOI 复杂表头的结构数据( 跨行.跨列),其它具体导出功能请参考 https://www.cnblo ...
- List对象按属性排序
1.Stream流sorted 正序: List<Person> collect = personList.stream().sorted(Comparator.comparing(Per ...
- 基于protobuf和httplib的在线通讯录项目框架|Protobuf应用小项目
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...