自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (47)
  • 收藏
  • 关注

原创 osg漫游器

在三维中常见的就是漫游整个场景,所谓漫游就是:观察者的视线从一个位置移动到另外一个位置或者在希望的方向上移动。在OSG中漫游可以通过改变观察者(相机)的位置和姿态来实现。三维世界中的模型的相对位置和形态不会发生变化,只是观察者的角度和位置发生了变化。常见的漫游器设计是不会考虑观察者的物理变化的,只会观察视觉运动的正确性,使观察者平滑的移动到指定的位置和姿态。设计漫游器的过程就是设置合适的相机...

2019-03-24 13:07:10 1875

原创 OSG在QT的中显示之二

利用QT在界面显示OSG模型,之前写过一篇文章OSG在QT的中显示,现在更新一下。#include <QtWidgets/QMainWindow>#include "ui_QtGuiOSG.h"#include "osgInc.h"class QtGuiOSG : public QMainWindow { Q_OBJECTpublic: QtGuiOSG(QWid...

2019-03-23 16:09:14 2891 4

原创 osg键盘消息处理

osg中主要使用osgGA库来处理用户的交互动作的,通常使用GUIEventAdapter类作为系统交互事件和OSG交互事件的适配接口。通过一个示例,通过键盘来控制模型的显隐:#pragma once#include "osgInc.h"class KeyboardHandler : public osgGA::GUIEventHandler {public: KeyboardHan...

2019-03-23 09:09:50 627

原创 osg使用多视景展示多个视图

先看效果:代码就比较简单了:void createMulitViewer() { osg::ref_ptr<osgViewer::Viewer> viewer1 = new osgViewer::Viewer; viewer1->setUpViewInWindow(0, 50, 320, 240); viewer1->addEventHandler(new os...

2019-03-22 08:51:35 1434

原创 osg图形设备接口和视景器

在Camera的类成员函数中,setGraphicsContext()这个函数的主要工作就是设置相机对应图形设备对象。GraphicsContext就是图形设备设备对象的载体,是任意图形子系统的抽象层接口,它提供了统一的图形设备操作函数,用于实现渲染结果和底层设备的交互,具有平台无关性。图形设备对象的主要工作就是提供场景渲染结果的载体。这个载体可以显示缓存,进而绘制到一个图形窗口中。Grap...

2019-03-21 15:52:48 771

原创 osg场景坐标

osg三维世界中,会使用到几个不同的坐标系统,下面会讲解几个常用概念,通过使用照相机拍照的过程进行类比:一、模型视点变换这个过程就相当于我们拍照时调整被拍摄物体的位置和姿态以及调整相机的位置和姿态。物体的位置和姿态成为模型变换;相机的位置和姿态称为视点变换,这两种变换在一起统称为模型视点变换。相机的位置和姿态又三个参数来决定:视点位置eye、参考点位置center和视点向上位置up。在拍摄...

2019-03-20 20:35:59 1656

原创 osg 雾效果

osg具有雾效果,也是非常简单可以实现的。先看一下效果:设置回调函数:#pragma once#include <osg/StateSet>class FogCallBack : public osg::StateSet::Callback {public: FogCallBack(); ~FogCallBack(); virtual void operator(...

2019-03-20 16:33:35 1351

原创 osg字体显示-居中显示

先看示例图:void createText3() { osg::ref_ptr<osg::Group> root = new osg::Group; osg::ref_ptr<osg::Node> cowNode = osgDB::readNodeFile("cow.osgt"); //获取节点包围盒 osg::ComputeBoundsVisitor bou...

2019-03-20 12:45:43 594

原创 osg字体显示

osg中字体一般都是通过的Text来实现的,继承自TextBase设置字体并且和屏幕平行显示;void createText2() { osg::ref_ptr<osg::Group> root = new osg::Group; osg::ref_ptr<osg::Node> cowNode = osgDB::readNodeFile("cow.osgt")...

2019-03-20 11:15:04 1073

原创 读《知识的错觉》有感

这本书替出了一些关于人们认知的新的观点,人们自认为很懂的知识也许并不是很了解。只是知道其中一些表面的东西。测量人们对某一知识是否了解的一项测试:1.你对拉链的工作原理是否了解,评分是1到7,7分是最了解,1分不是不了解。2.请写出拉链的工作原理,越详细,越好。3.请再次评分,你是否了解拉链的工作原理。通过这种类似的测试,可以测试一下人们是否真的对某类知识是否了解。人们做出任何一项决定都...

2019-03-19 23:00:39 430

原创 osg显示图片

osg读取文件图片使用的类是:DrawPixels原始图片:裁剪之后运行效果:运行代码:void createImage() { osg::ref_ptr&lt;osg::Group&gt; root = new osg::Group; osg::ref_ptr&lt;osg::Geode&gt; geode = new osg::Geode; osg::ref_ptr&lt;...

2019-03-14 14:03:53 2745 2

原创 osg绘制回调

上一篇文章讲解了如何绘制一个几何图形,那么在绘制的时候如何控制绘制的过程呢?还是使用到了回调osg::Drawable::UpdateCallback定义回调类:#pragma once#include &lt;osg/Drawable&gt;class GeoCallBack : public osg::Drawable::UpdateCallback {public: Geo...

2019-03-14 13:33:41 729

原创 osg基本绘制-线

osg绘制图形需要定义最基本的顶点坐标数组。绘制几何图形需要osg::Geometry这个类,他就是负责几何体的绘制。void create4Geo() { osg::ref_ptr&lt;osg::Group&gt; root = new osg::Group; osg::ref_ptr&lt;osg::Geode&gt; geode = new osg::Geode; root-&...

2019-03-14 11:36:42 8310 6

原创 osg细节层次节点

osg中LOD细节层次节点,在不影响场景渲染结果的情况下,更具场景和观察者的距离,从多个预置方案中选择一个更为加单的方式显示,从而减少场景绘制的负担。也就是说:可以设置不同的节点,在场景中距离远近的显示效果,在距离比较远的时候,就显示面数比较少的模型或者隐藏模型。在距离比较近的时候显示的比较全或者显示面数比较多的模型。先看显示效果:void createLOD() { osg::ref_...

2019-03-13 18:45:00 899 1

原创 osg开关节点

osg中控制节点显隐的节点Switch。利用上一篇文章中的回调过程,实现节点的动态显示与隐藏。先看效果:定义回调对象:#pragma once#include "osgInc.h"class SwitchCallBack :public osg::NodeCallback {public: SwitchCallBack(); ~SwitchCallBack(); virtu...

2019-03-13 16:47:47 474

原创 osg设置回调接口

osg的回调有两种回调方式:更新回调和人机交互事件回调。前者是在场景渲染每一帧的时候调用,后者是由用户交互事件触发。osg更新回调继承类osg::NodeCallback,是通过回调可以控制每帧运行过程中的行为。通过函数void addCullCallback (NodeCallback *nc)设置回调对象。通过回调实现一个动画效果:定义回调函数:#pragma once#i...

2019-03-13 15:36:40 704

原创 osg节点访问器

定义好三维的节点场景之后,有时会需要访问其中的节点,包括从头至尾的访问,或者从先向上的访问,这样就需要一个访问器。osg::NodeVisitor就是这样的一个访问器。它遍历场景节点有几种方式:TRAVERSE_NONE - 仅访问当前节点,不继续遍历TRAVERSE_PARENTS - 向父节点推进TRAVERSE_ALL_CHILDREN - 向子节点推进函数: void tra...

2019-03-12 23:35:06 886

原创 osg节点说明

osg中数据组织是以树形结构组成的,看一下下面类图:osg::Geode和osg::Group节点都是继承自osg::Node。Geode是叶节点,也就是不会再有子节点。叶节点的工作主要是保存可绘制物体。管理的节点都是继承自Drawable这个类,有一个或者多个Drawable对象。Group组节点最为根节点或者其他节点。管理者众多其他的节点。常用的节点总结:空间变换节点:它可以改变...

2019-03-12 19:11:00 1979

原创 osg节点的包围球

osg数据组织方式采用的是树形节点的组织方式,每个节点都由相应的包围球。void createBound() { osg::ref_ptr&lt;osgViewer::Viewer&gt; viewer = new osgViewer::Viewer; viewer-&gt;addEventHandler(new osgViewer::WindowSizeHandler()); osg:...

2019-03-11 23:16:05 1742

原创 OSG 绘制一个圆

OSG绘制一个圆,采用的是多个线段收尾连接在一起的办法。查看源码:void createClock() { //设置线宽 osg::ref_ptr&lt;osg::LineWidth&gt; lineSize = new osg::LineWidth; lineSize-&gt;setWidth(4.0); //获取根节点 osg::ref_ptr&lt;osg::Group&g...

2019-03-11 19:21:49 5649

原创 C++中虚函数的使用

C++中重要的特性:封装、继承和多态。其中多态体现在多个类之间的关系上,也是设计模式中常用的一种特性。多态和继承联系在一起,子类继承父类的行为同时会改变父类的行为。在这其中虚函数起了重要的作用。虚函数一般使用在什么情况下呢?如果我们只关注程序本省的行为,同时没有继承关系,那么函数是否为虚函数根本无关紧要。只用在考虑到继承时才有必要考虑这些问题。也并不是所有的类都是为了继承而设计的。虚函数...

2019-03-10 21:02:56 229

原创 OSG粒子效果-雪

osg可以实现各种各样角复杂的粒子效果,下面实现一个比较简单的下雪的效果:void createSnow() { osg::ref_ptr&lt;osg::Group&gt; root = new osg::Group; root-&gt;addChild(osgDB::readNodeFile("cow.osg")); //设置雪花类 osg::ref_ptr&lt;osgP...

2019-03-10 12:23:10 1485 1

原创 QT+OpenGL绘制

QT中已经集成了OpenGL的功能,下面利用OpenGL来实现第一个三角形的绘制。先看效果:#pragma once#include &lt;QOpenGLWidget&gt;#include &lt;QOpenGLFunctions&gt;#include &lt;QOpenGLShaderProgram&gt;class BBBOpenGLWgt : public QOpen...

2019-03-08 15:30:48 2340

原创 读《从一到无穷大》之后感

大家也许会觉得科学是比较枯燥的,理论性的东西比较多。如果单单给你一本关于这方面的书籍,除非是对相关方面的科学知识有所了解,否则一般人是继续难读下去的。之前我也是这样认为的,但是读完俄国科学家乔治.伽莫夫的著作《从一到无穷大》之后,发现科学也可以这样有趣。这本书不单单告诉你一些基本的科学理论知识,更是把这些知识融入有趣的比喻和生动的语言中。让你看完之后,还想再看一遍。这本书适合于具有初中文化水平...

2019-03-07 23:34:06 518

原创 QGraphicsView移动图元/场景以及坐标转换

使用Qt来画图的时候,需要了解一下QGraphicsView(视图)、QGraphicsScene(场景)、QGraphicsItem(图元),已经他们之间的关系。通过把各种 图元(基类都是:QGraphicsItem)组合在一起搭建成场景(QGraphicsScene),把搭建好的场景通过视图展示出来(QGraphicsView)。通过一个示例来展示,选中图元的时候可以移动图元,选中空白的时...

2019-03-06 17:56:06 18552 7

原创 QGraphicsView居中显示图元

QGraphicsScene:图形场景,主要用来添加各种图元,保存数据;QGraphicsView:用来显示场景中的数据;QGraphicsItem:各种图元的基类,在此基础上可以派生不同图元类型。首先定义场景和View; QGraphicsScene* _graphicsSence; QGraphicsView* _graphicsView;搭建一个简单的场景并且显示出来:voi...

2019-03-05 23:21:26 5363

原创 QCustomPlot的使用之四-响应鼠标移动和弹起事件

在项目中使用QCustomPlot过程中,会有新的需求需要满足,比如在显示的数据表格中,鼠标移动到数据线上的时候,需要实时显示当前显示的线上点的具体数据;点击这条线的时候,弹出对话框展现出数据线段的详细信息。解决思路:在不改变QCustomPlot的前提下,在其外层封装一层类,使其外层实现相应的功能。需要到的类图继续关系图:先看实现的效果:首先要找到QCustomPlot的相应的鼠标信...

2019-03-04 19:02:47 7603 13

原创 osgEarth显示地球影像

osgEarth是在OSG基础上的显示三维地球的,因为是基于OSGEarth的,所以在使用方式上和OSG是相似的,osgEarth显示的地球影像是通过earth文件来配置的,earth本质上是一个xml文件,配置了地球的投影方式和加载的数据。看一个最基本的earth配置文件。&lt;map name="MyMap" type="geocentric" version="2"&gt; &lt;i...

2019-03-04 11:11:40 3727 2

原创 OSG鼠标点选模型二

上一篇文章中说了,如果使用鼠标点选隐藏模型。当时如果是同一个模型经过缩放或者平移后再次显示出来,也就是就在了一份模型但是通过平移显示出两个模型,点击其中一个模型时候回怎么样?是隐藏当前模型还是隐藏所有同类模型?创建一个这样的场景:void mousePick2() { osg::ref_ptr&amp;lt;osgViewer::Viewer&amp;gt; viewer = new osgViewer:...

2019-03-03 21:43:01 1168

原创 OSG鼠标点选模型

OSG鼠标点选模型,选中的模型消失:1.模型路径1.创建两个模型,并且把这两个模型放到Group中,并且注册鼠标点击事件处理void mousePick2() { osg::ref_ptr&lt;osgViewer::Viewer&gt; viewer = new osgViewer::Viewer(); viewer-&gt;addEventHandler(new osgViewer...

2019-03-01 17:28:53 3360

原创 OSG节点位置变化

OSG中改变模型的位置、姿态或者比例,常用的类有两个:osg::PositionAttitudeTransformosg::MatrixTransform展示效果:代码示例:void mousePick() { osg::ref_ptr&lt;osgViewer::Viewer&gt; viewer = new osgViewer::Viewer(); viewer-&gt;...

2019-03-01 11:04:47 1277 1

ICEGUI.rar

利用ICE创建发布/订阅和RPC(远程调用) ICE是一个非常优秀的网络通信的中间件,我们现在要利用ICE创建点对点通信和发布/订阅模式的通信。 一.点对点通信主要是采用RPC通信方式 二、发布/订阅模式的通信。 https://blog.csdn.net/wb175208/article/details/107759716

2020-08-03

QtGuiOSG.rar

s使用OSG在QT的环境中显示模型,使用的64位版本 qt5.10+VS2015

2019-10-12

qwt-6.1.4_lib_dll.zip

VS2015+QT5.10+64位版本的QWT,已经编译通过,可以直接使用

2019-09-22

OSG在QT的中显示

https://blog.csdn.net/wb175208/article/details/88762806 OSG在QT的中显示二

2019-03-23

64位OCI驱动可以直接调用

已经编译后的qt5.10版本的oracle读写驱动,可以使用Qt自带的读写工具完成对oracle数据库的读写

2019-01-04

QDockWiddget实现界面布局

使用QT中的QDockWidget实现界面布局的划分,划分成类似于VS的界面布局

2019-01-02

C++设计模式代理模式

C++实现代理模式,隐藏了真实的对象并且可以扩展其他的非核心功能,还实现了强制代理

2018-12-13

线段绘制,求出线段的垂线

绘制线段,并且求出线段上一点的垂线,并且计算出两条直线的交点

2018-09-16

线段绘制,并且可以拖动线段绘制

x线段绘制,并且可以选中线段的起点或者终点,选中后可以拖动重新进行定位

2018-09-16

QCustomPlot绘制

QCustomPlot使用,VS2013+QT5.7可以直接运行,绘制效率和绘制场景都非常好

2018-08-31

OpenGL开发包

测试成功的OpenGL资源,和VS2013配合开发视觉图形,经过测试有效!

2018-05-14

OSG开发工具集合

OSG开发所需要的工具和数据

2017-07-06

编译通过的OSG库文件、头文件和数据

编译好的OSGdll和lib头文件数据文件,可以直接使用

2017-07-06

TIFF文件处理工具

TIFF文件的处理,包括文件的读写修改,坐标的添加和修改

2017-04-27

tinyXMl解析XMl文件

tinyxml解析XML文件

2017-04-24

android studio2.2.3调用C++

android studio2.2.3开发C++

2017-04-13

TIFF文件读取

实现对TIFF文件读取分析,同时解析出其中包含的地理信息。

2017-03-06

通过缓存下载图片

网络下载图片的功能,并且在ViewPaper和RecyclerView中展示出来,采用三级缓存的模式:   a.先检测内存   b.再检测文件   c.最后检测网络下载

2017-01-09

android整片叠底处理透明色

利用paint变量,实现两张图片的整片叠底的显示,同时可以处理透明色

2016-12-30

颜色覆盖度计算

计算某种颜色在整张图片中的所占的比例

2016-12-25

QtGuiProductConsume.zip

https://blog.csdn.net/wb175208/article/details/120687592 在仿真引擎中设计过程中比较重要的内容有时间同步控制、业务数据的流转处理。

2021-10-10

QtInterface.zip

https://blog.csdn.net/wb175208/article/details/120368491 QT中QtPlugin插件的使用:QT本身就是带有插件系统的,可以使用QT自身携带的插件系统开发自己的插件。插件的好处:就是可以使多人同时开发,在使用的时候再加载起来。下面通过一个Demo来实现插件的管理。

2021-09-18

TimePlan.zip

https://blog.csdn.net/wb175208/article/details/115767330 可以缩放和拖动,并且自由的调整时间精度

2021-04-16

DD1024.zip

使用Qt编写的1024小游戏 https://blog.csdn.net/wb175208/article/details/113820305

2021-02-15

Tetris.zip

使用Qt5.10编写的俄罗斯方块,采用QGraphicsScene框架 https://blog.csdn.net/wb175208/article/details/113730818

2021-02-06

IceServerClient.rar

Ice实现点对点通信,和Qt界面相结合 https://blog.csdn.net/wb175208/article/details/109770089

2020-11-18

QtRandomNumber.rar

C++ 洗牌算法的实现 https://blog.csdn.net/wb175208/article/details/109114393

2020-10-16

build_step_self.rar

https://blog.csdn.net/wb175208/article/details/108747024 osgearth可以编译 3rhparty可以编译 osg可以编译 proj可以编译 geos可以编译 编译环境 :VS2015+QT5.10+x64

2020-09-24

MoveChildWgt.rar

https://blog.csdn.net/wb175208/article/details/108727535 弹出一个透明的窗口并且可以移动,双击窗口可以关闭窗口

2020-09-22

QT在子线程中调用定时器

QT中在子线程中调用定时器 https://blog.csdn.net/wb175208/article/details/108476275

2020-09-08

IceApplication.rar

使用Ice::Application可以快速搭建通信环境,https://blog.csdn.net/wb175208/article/details/107617687

2020-07-27

PubSub.rar

使用IceStorm启动服务调用,实现发布订阅模式的现实使用,有标准的iCE文件 IceStorm是基于IceBox服务实现的一个轻量服务

2020-07-26

ice-3.7_src.zip

ice-3.7源码

2020-07-23

ice-3.7.rarI

使用ice3.7编译好的,dll和lib包含相应的头文件,可以直接使用。支持C++98和C++11,里面包含了32位版本和64位版本

2020-07-23

Thread.zip

QT创建线程的方式有三种,一种是使用QThread,一种是使用QRunable方式,另外就是使用moveToThread方式。QT使用moveToThread使当前发对象关联到线程中,使当前对象在线程中运行。

2020-07-21

VS2015.zip

自定义QT控件并且可以发不到Qt Desgner中进行统一的使用,自定义按钮,并且定义标准的信号,任何Qt项目中都可以使用。做到的项目中主题风格的统一

2020-07-20

GraphTraversal.zip

通过QT把图绘制出来,并且通过深度优先搜索和广度优先搜索分别实现对图中的每一个节点进行搜索。在搜索过程中使用一个线程进行搜索,提高搜索效率,提高用户体验

2020-01-14

FloodFill.zip

利用深度优先搜索或者广度优先搜素实现,地图的遍历。类似于扫雷游戏。在搜索过程中使用线程,加快了搜索效率,提高了用户体验

2020-01-10

QtGuiMaze.zip

利用QT搭建界面,采用多线程使用深度优先搜索实现迷宫寻宝,宝物和障碍物采用的图片的形式显示出来。可以设置迷宫的大小,通过鼠标的点选的方式实现迷宫的构造。

2020-01-05

PathLine.rar

利用Qt绘制贝塞尔曲线,并且还可以遍历曲线上的任何一个点,采用定时器的方式,每个500毫秒向前移动一点

2019-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除