自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (4)
  • 收藏
  • 关注

原创 osgearth学习笔记1:二维地图显示

osgearth二维地图显示

2022-07-24 16:01:38 3052 4

原创 osgearth学习笔记2:星空效果显示

星空效果设置

2022-07-17 21:25:27 996

原创 osgearth学习笔记1:地球节点构建

osgearth地球节点构建

2022-07-17 21:12:09 1246 1

原创 2020-12-04

osg程序运行出现无法解析外部符号(VS2013解决方案)一直遇到这个问题,后来尝试多次发现出现这类似问题一般可归纳为两种:第一种:没有配置项目路径,配置完后需要在在链接器-->输出-->附加目录项中添加相应的lib第二种:是程序运行环境的错误,就是在x64下生成的库,编译的时候使用的平台是win32。这种情况的解决方法是:直接将解决方案的平台改成x64。如果改完之后代码#include出现错误,要在x64下重新配置osg即可。...

2020-12-04 23:03:15 146

原创 八大排序算法(一)--------插入排序、Shell排序

一、插入排序(InsertionSort)1、原理:如同整理桥牌的方法,将每一张牌插入到其他已经有序的牌中的适当位置,直到全部记录插入完毕为止。2、思路:(1)首先需要明确待排序的数列由两部分组成,已排好序的部分(有序表)和待排序的部分(无序表); (2)每次从无序表中取出一个元素;(3)接着我们每次选择待排序的部分...

2019-08-12 21:55:38 176

原创 八大排序算法(一)--------冒泡排序、选择排序

一、冒泡排序(Bubble Sort)1、原理:比较相邻的两个元素,将值大的元素交换至右端。2、思路:(1)比较相邻的元素。将小数放在前面,大数放在后面; (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; (3)针对所有的元素重复以上的步骤,除了最后一个; ...

2019-05-26 17:52:16 219

原创 八大排序算法总结

概述说明:即使大多数语言提供排序函数,但学习排序算法仍然有三大实际意义:对排序算法的分析将有助于全面理解其他比较算法性能的方法; 类似的技巧也能有效解决其他类型的问题; 排序算法常常是我们解决其他问题的第一步。(1)排序的定义:就是将一组对象按照某种逻辑顺序重新排列的过程。(2)评价算法优劣术语说明 稳定:若果a原本在b前面,而a=b,排序之后a仍然在b的前面;...

2019-05-26 16:51:38 292

原创 Qt获取文件夹下的文件个数

先看代码: QDir *dir=new QDir("D:\"); QStringList filter; //filter<<"*.dat"; //dir->setNameFilters(filter); //过滤文件类型 QList<QFileInfo> *fileInfo=new QList<QFileInfo...

2018-12-11 17:16:35 7061 1

原创 OSG实现类似arcgis中制图的图例效果

主要是通过osg的HUD来实现。所谓HUD节点,就是无论三维场景怎么样变动,它都能在屏幕中固定的位置显示的节点,即不随场景和视点的变换而变换。实现步骤:1.创建相机,它的子节点绘制到这个HUD中2.设置投影矩阵,这个就是投影到场景的屏幕上3.设置相对帧setReferenceFrame(osg::Transform::ABSOLUTE_RF);camera->set...

2018-12-01 20:33:40 1219 2

原创 使用Qt开发截图小程序

使用Qt来抓图截屏,需要用到QPixmap 来保存图片,也可以设置定时器,设置间隔xx时间捕获一次屏幕。1、需要用到的主要头文件#include<QPixmap>#include <QDesktopWidget>2、获取整个桌面图像QScreen *screen=QApplication::primaryScreen(); //获取当前程序的主窗口对象...

2018-11-13 10:40:42 619

原创 osg显示文字

在osg中显示文字的时候,遇到了两个问题:1、编译好的osg居然缺少插件,一看果然少了osgdb_freetype插件;2、中午字体无法显示,最后查到是需要转成宽字节。 以下是Text文本节点的相关属性和设置,字体设置那里,有些字体不能显示中文是正常的,建议使用“simhei.ttf”osg::ref_ptr<osgText::Font> font = osgTe...

2018-11-09 19:20:53 2863

原创 双重循环优化,提高运行效率

循环次数较少的时候for循环一般不会影响运行效率,但一旦循环次数较多,成千上万的时候,循环次数越多,效率就越慢,最近在做一程序的时候要解决优化问题,反复查看只有优化双重for循环才能提高效率。事实证明,优化后效率提升了一大半。 当然,本文也有借鉴其他博友的方法,根据以下方法提升效率:1、实例化变量放在for循环外,减少实例化的次数2、把能在循环外计算的,尽量在循环外计算,减少在内层的运算...

2018-09-19 16:28:38 11177 2

原创 Qt中信号/槽机制

信号槽用于对象间的通讯,是观察者模式的一种实现。1、信号一个信号(signal)就是一个能够被观察的事件,或者至少是事件已经发生的一种通知。当事件或者状态发生改变的时候,信号就会被发出(emit);同时,信号发出者有义务调用所有注册的对这个事件(信号)感兴趣的函数(槽)。信号的声明是在头文件中进行的,需要用到关键字signal(signal是Qt中的关键字,而非C/C++中的)。信号可以重...

2018-09-08 18:01:11 215

转载 Qt构建、运行、qmake的区别

qmake:根据实际环境创建项目文件.pro   并且运行qmake生成适当的Makefile构建:构建是增量编译,只编译有变化部分重新构建:是把所有部分都重新编译运行: 有改动则根据已有的Makefile进行编译,执行;构建和重新构建时如果没有Makefile,会根据.pro文件等生成Makefile后再编译所以运行顺序应该是:qmake-构建-运行  ...

2018-09-05 17:42:36 1596

原创 Qt在设计界面添加控件后在cpp文件中无法调用问题

在cpp中无法调用在Qt设计界面添加的控件,我主要是在用vs2013时才遇到的,在用QtCreator是没有出现此类情况,后来通过查阅调试最终找到了解决办法:1、在vs解决方案里面选中ui界面,然后右键选择“编译”;2、在vs解决方案里面选中项目,然后右键选择“重新扫描解决方案”。然后在cpp中就可以通过ui->(或者ui.)获得添加的控件的名称了。...

2018-09-01 17:12:24 7149 3

原创 解决Qt4.8.6中文乱码问题

将Qt5.x中写的代码放在Qt4.8.6中运行出现了中文全是乱码问题,查了一下,给出的解决方案是,需要添加如下几行代码:#include <QTextCodec>QTextCodec *codec=QTextCodec::codecForName("utf-8");QTextCodec::setCodecForLocale(codec);QTextCodec::setCod...

2018-08-16 16:10:49 2131

原创 Centos7.2下安装Qt4.8.6

之前一直是在Qt5.0中进行开发,突然boss要求使用Qt4.8.6(搞不懂为什么要换这么老的版本,但只能无条件接受),Qt4.8.6与Qt5.x有一些区别,首先没有自带的QtCreator,需要自己安装。下面是Qt4.8.6+QtCreator2.6.1的安装。1、安装前准备安装前需要下载Qt4.8.6和QtCreator2.6.1Qt4.8.6:http://download.qt...

2018-08-16 16:04:47 7392

原创 WGS84 UTM 坐标系及UTM投影分带标准

1.  UTM (Universal Transverse Mercator)坐标系是由美国军方在1947提出的。虽然我们仍然将其看作与“高斯-克吕格”相似的坐标系统,但实际上UTM采用了网格的分带(或分块)。除在美国本土采用Clarke 1866椭球体以外,UTM在世界其他地方都采用WGS84。UTM是由美国制定,因此起始分带并不在本初子午线,而是在180度,因而所有美国本土都处于0-30带内。...

2018-08-15 19:07:46 29211 5

原创 OSG中调试信息显示

 OSG 可以将各式各样的调试信息输出到std:cout。这在开发OSG 程序时十分有用,你可以借此观察OSG 的执行的各种操作。1、统计信息显示键盘的“S”键对于性能测试十分有用,它将适用osgUtil 库的Statistics 类来收集和显示渲染性能的信息。循环按下“S”键(小写s)可以切换四种不同的显示方式:(1)帧速率:osgviewer 将显示每秒钟渲染的帧数(FPS)(...

2018-08-15 16:01:25 2243

转载 使用GDAL实现坐标转换

在接触这部分内容前,应该对空间参考(Spatial Reference)、大地水准面、基准面(datum)、地图投影(map projection)、地理坐标系(Geographic Coordinate System)和投影坐标系(Projeetion coordinate system)有一定了解。OGRSpatialReference类和OGRCoordinateTransformation...

2018-08-14 17:56:37 10457

转载 地理坐标系与投影坐标系

地理坐标系与投影坐标系1.基本概念地理坐标系:为球面坐标。 参考平面地是椭球面,坐标单位:经纬度;投影坐标系:为平面坐标。参考平面地是水平面,坐标单位:米、千米等;地理坐标转换到投影坐标的过程可理解为投影。(投影:将不规则的地球曲面转换为平面)2、地理坐标系 2.1 地球的三级逼近2.1.1大地水准面地球的自然表面有高山也有洼地,是崎岖不平的,我们要使用数学法则...

2018-08-13 16:38:58 2318

原创 使用GDAL/OGR读取OGRMultiLineString类型数据

最近在开发的时候遇到需要将shp线数据转为点数据,也就是要把线上的系列点坐标读取出来,通常用arcgis能完成操作,但在开发中只能通过代码实现,在AE二次中有专门的类和接口,但用C++进行的二次开发就不那么好办,查阅发现GDAL/OGR可以帮助完成此项工作,这里与大家分享结果。#include <iostream>#include <QString>#includ...

2018-08-12 11:49:12 1879 1

原创 OSG中的几何体绘制(二)

前面已经讲过了如何用OSG中绘制几何体,这里讲一个OSG中单点的绘制和点的大小设置。1、单点绘制在OSG中用绘制点的方式绘制单点,通常会发现只有当点个数大于等于二是才能显示出来,这是因为默认把小物体裁剪掉了,因此需要添加下面代码:osg::CullStack::CullingMode cullingMode=viewer->getCamera()->getCullingM...

2018-08-08 17:29:59 1231

原创 OSG中的几何体绘制(一)

任何复杂的东西都是由一些简单部分组合构成的,对于OSG创建的场景和对象也同样如此,它们是由简单的图元(我们把构成3D对象的构件成为图元)按照一定的方式排列和组合而成的,OSG中的所有图元都是一维或二维对象,包括点、线和复杂的多边形。几何体(osg::Geometry)类,继承自osg::Drawable类,使用它用户可以通过指定顶点,颜色和法线的方式,绘制简单的线段,三角形,多边形,并将绘图的...

2018-08-08 17:16:07 3386 1

原创 QT中的定时器

在编写代码时,经常会遇到需要间隔某一时间触发一次时间或者间隔某一时间在执行某段代码,QT中提供了Timer类可用于设置时间间隔。简述QTimer类提供了重复和单次触发信号的定时器。QTimer类为定时器提供了一个高级别的编程接口。很容易使用:首先,创建一个QTimer,连接timeout()信号到适当的槽函数,并调用start(),然后在恒定的时间间隔会发射timeout()信号。...

2018-08-06 22:50:07 1183

原创 C++中间隔指定时间执行代码操作

这里使用延迟时间,在需要间隔地方使用执行延时函数可以使系统暂停一段时间。主要介绍slee函数和usleep函数1、windows系统下使用Sleep函数头文件:#include <windows.h>用法:void Sleep(DWORD dwMilliseconds)参数时间单位为毫秒(ms),即使用此方法可以延时n毫秒例:Sleep(5000)  //表示延时5...

2018-08-06 22:41:29 8411

原创 pqxx::tuple::reference类型转换为其他数据类型

 转换格式见下面例子中展示:pqxx::work w(conn);//创建一个事务对象,conn为连接的数据库pqxx::result res=w.exec(sql);//sql为SQL语句//将查询结果转为其他数据类型格式展示for(pqxx::result::const_iterator row=res.begin();row!=res.end();++row){ co...

2018-07-17 21:26:03 605

原创 OSG光照使用及模型发暗解决方法

原理部分不细说,这里 主要说一下如何使用光源,以及遇到场景中的模型较暗该如何解决。一、场景中使用光源步骤:1、指定模型场景的发现;2、允许光照并设置光照状态;3、指定光源属性并关联到场景图形。#include <osgViewer/Viewer>#include <osg/Node>#include <osg/Geode>#include <osg/...

2018-07-15 23:01:34 7664 1

原创 psql版本和server版本不一致的解决办法

在Centos7是使用postgresql的时候遇到了psql与server(服务器)版本不一致问题,主要是因为psql使用的还是系统自带的9.2版本,而server使用的是最新安装的10.4版本。所以会出现如下警告:-bash-4.2$ psql psql (9.2, server 10.4)WARNING: psql major version 9.2, server major vers...

2018-07-11 15:55:56 3277

原创 C++连接postgresql数据库

一、前言本教程是所有运行环境均在Centos7.2下实现,使用前先确定PostgreSQL数据库安装成功,一定要确保安装路径/usr/pgsql-10下面有bin、include、lib、doc、share文件夹(路径可能不一样,但前三个文件夹一定要有,很关键),如何include没有可以下载源码拷贝过来,但最好是安装好就有。本教程中使用libpqxx库来实现C++和pgsql数据库的连接,lib...

2018-07-04 21:42:56 11896

转载 命令行方式PostgreSQL数据库添加新用户

1、切换到Linux用户postgres,然后执行psql;$ su - postgres-bash-4.2$ psqlPassword:******postgres=#此时就进入到了pgsql数据库了2、创建数据库新用户,如 dbuser:postgres=# CREATE USER dbuser WITH PASSWORD '*****';3、创建用户数据库,如exampledb:po...

2018-07-02 22:07:13 8015

原创 Centos7.2下安装PostGIS及shp数据导入

一、安装前准备PostGIS的安装和运行需要在PostgreSQL环境下,PostgreSQL具体安装可参考Centos7.2下安装postgresql10postgis安装前可先安装写依赖:geos 3.4.2, 可以使用yum install geos geos-develgdal 1.11.4, 可以使用yum install gdal gdal-develproj 4.8...

2018-06-30 11:21:01 2123

原创 Centos7.2下安装postgresql10

CentOS7.2中自带的PostgreSQL是9.2版本的,里面没有NoSQL特性,因此我们使用rpm包安装方式,PostgreSQL的repository包地址列表在这里1、首先安装PostgreSQL的rpmsudo yum install -y https://yum.postgresql.org/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noa...

2018-06-29 11:06:16 913

原创 QT中控制Widget窗体大小方法

首先纠正一下QT的正确读法是“Q特”,不是“Q替”,个人认为这个问题还是比较重要的,就想C#不喜欢被人读成“C井”一样。言归正传,很多时候在写窗体的时候为了方便都会通过代码去控制窗体大小,这里就说说控制窗体的函数,虽然这是个比较简单的问题,但对我这种菜鸟级小白,还是在这里遇到了坑。QWidget *w=new QWidget;1、setBaseSize函数在定义了上面的函数后,通过w->能调...

2018-06-28 22:18:28 35494 9

原创 Centos7.2下安装Cmake步骤

1、安装gcc等必备程序包(已安装则略过此步)yum install -y gcc gcc-c++ make automake 2、安装wget (已安装则略过此步)yum install -y wget3、获取CMake源码包wget https://cmake.org/files/v3.12/cmake-3.12.0-rc1.tar.gz4、解压CMake源码包tar -zxvf cmake-...

2018-06-28 10:53:59 25078 6

原创 Linux下 OSG开发,影像没有纹理问题

今天在Centos下用OSG加载影像和三维场景,一直没有纹理,在QT上通过后台查看发现一个警告“detected Opengl error:'invalid enumerant' at after randerer::compile”,发现是OpenGL的问题,然后在Centos对相关OpenGL库进行安装和更新。其实在Linux下只要安装了Mesa和freeglut就可以了。yum instal...

2018-06-25 10:16:02 1219

原创 GDAL读取查询shp数据

用GDAL读取shp数据都是基于OGR库的,需要提前编译好GDAL库,配置好环境变量。这里的代码是在Linux系统下基于Qt5编写和运行的,亲测能成功运行。GDAL编译可以查看之前的文档,代码及部分说明如下:#include "widget.h"#include <QApplication>#include "gdal.h"#include "gdal_priv.h"#i...

2018-06-11 20:22:04 5370

转载 QtCreator在控制台输出结果

在使用QtCreator的时候,有时希望能够像VS一样能在控制台输出信息,便于调试,其实也很简单,只需做如下修改就好:1、项目->运行 界面下做如下修改2、在.pro文件中添加CONFIG +=console3、添加头文件#include <QDebug>4、使用qDebug进行输出,如下所示:qDebug()<<"Hello Qt!";...

2018-06-11 15:43:56 8167

原创 解决Qt中GCC支持C++11标准问题

想必看到这篇博客的人都是奔着问题来的,所以这里就不做关于什么是GCC、C++11的介绍了。1、什么是C++0xC++0x是C++最新标准标准化过程中的曾用名,在这一系列文章中我们将介绍最新标准添加的一系列新的语言特性。在2011年9月份,C++0x正式由官方发布并命名C++11,现在很多编译器已经支持了部分C++11特性。C++11包括大量的新特性:主要特征像lambda表达式和移动语...

2018-06-09 16:57:39 4308

转载 Win7下安装Centos7.2

虽然这样的博客网上有很多,但最近系统崩了,重装的时候没找对参考博客还是入坑了,这才决定写一下,避免以后再犯同样错误。安装前准备:centos7.2系统ultraISO(软碟通)不小于8G的U盘一个(建议16为好,避免不必要的麻烦)一、启动盘的制作1、下载Centos7.2系统这个可以进官网下载,但官网下载速度可能会很慢,网上有很多镜像文件下载,这里就不给链接了。2、下载ultraISO(软碟通)这...

2018-06-05 19:45:44 1774

课堂点名器(可自己配置)

本软件专为课堂随机点名开发,可直接使用,免安装,通过修改文件夹中的学生名单可自定义设置名单内容,还可以根据自己喜好更换背景图标和logo

2020-11-24

qt-creator-linux-x86_64-opensource-2.6.1.bin

qt-creator-linux-x86_64-opensource-2.6.1.bin事CentOS系统下的QtCreator2.6.1安装包,官方开源,可以配套Qt4.8.6使用

2019-12-06

带有骨骼动画的人物模型(真实的、卡通的)提取链接.txt

很多人物模型(真实的、卡通的)都带有骨骼动画,资源很全。fbx格式,由于资源比较大,这里给了百度链接

2019-11-06

Linux下在QT中访问pgsql数据库

本资源主要是基于Centos7.2平台下,如何在QT5中访问到pgsql数据库,其中包括系统安装、数据库安装以及连接数据库说明,同时也给出了相应代码。

2018-07-05

空空如也

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

TA关注的人

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