自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 python常用pip安装源网址

中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:https://mirrors.aliyun.com/pypi/simple/豆瓣:http://pypi.douban.com/simple/假设我们需要安装名为numpy的Python包。使用清华大学镜像源,重新安装numpy。平时pip安装偶尔会下载速度过慢。使用默认源安装numpy。

2023-10-26 15:01:12 3899 1

原创 python3使用代理 报错MaxRetryError

​ 在使用代理进行请求时,代理只通过请求,此时请求进行验证时验证失败。修改本地代理,将HTTPS覆盖为HTTP请求Windows 10下打开设置 -> 网络和Internet -> 代理,找到代理的IP和端口

2022-07-06 14:39:20 1805 1

原创 OSG 球体参数方程绘制

球面的参数方程绘制

2022-06-23 10:22:16 1210

原创 C++ 结构体字节对齐规则

先介绍三个概念:自身对齐值、指定对齐值、有效对齐值。自身对齐值:数据类型自己的对齐值,例如char类型的自身对齐值是1,short类型是2;指定对齐值:编译器或程序员指定的对齐值,32位的指定对齐值默认是4;有效对齐值:自身对齐值和指定对齐值中较小的那个。对齐有两个规则一、不但结构体的成员有有效对齐值,结构体自己也有对齐值,这主要是考虑结构体的数组,对于结构体或者类,要将其补齐为其有效对齐值的整数倍。结构体的有效对齐值是其最大数据成员的自身对齐值;二、存放成员的起始地址必须是该成员有

2022-05-17 15:36:56 1916 6

原创 vs2017 建立本地Git仓

vs建立本地git

2022-03-30 15:05:07 421

原创 osgearth二维地球显示

需要用的GDAL#include <osgEarth/MapNode>#include <osgEarthDrivers/gdal/GDALOptions>#include <osgEarthDrivers/cache_filesystem/FileSystemCache>#include <osgEarth/ImageLayer>#include <osgEarthUtil/EarthManipulator>

2021-04-15 14:59:14 3192 2

原创 osgearth加载影像数据TMS、Tif、XYZ

加载TMS文件 TMSOptions imagery; imagery.url() = "http://readymap.org/readymap/tiles/1.0.0/22/"; m_pMap->addLayer(new ImageLayer("ReadyMap Imagery", imagery));加载TIF、IMG等格式文件 GDALOptions gdal; gdal.url() = pDataSource.strFile; os

2021-04-15 10:51:22 9658 2

原创 python3爬取网页AJAX数据

目前很多网站都使用ajax技术动态加载数据,和常规的网站不一样,数据时动态加载的,如果我们使用常规的方法爬取网页,得到的只是一堆html代码,没有任何的数据。Ajax是利用 JavaScript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。Ajax基本原理 发送请求 解析内容 渲染页面 比如:首先打开chrome浏览器,打开开发者工具,点击Network选项,点击XHR选项,然后输入网址:https://www.baidu.com/

2021-03-12 17:22:26 929

原创 C++ 中文乱码

原因就是字符串编码的方式也字符串解码方式不一致导致的, 而在我们平常用的编码编码方式一般都是utf-8以gbk之间的相互转换, 下面给出编码方式的转换代码string UtfToString(string strValue) { int nwLen = ::MultiByteToWideChar(CP_ACP, 0, strValue.c_str(), -1, NULL, 0); wchar_t * pwBuf = new wchar_t[nwLen + 1];//加上末尾'\

2021-01-12 09:03:48 1551

原创 C++调用Python及间接调用Python三方库

本文章目的是脱离安装Python环境的前提下,由C++程序调用Python程序及Python相关三方库1.移植Python解释器Python环境的目录结构红色部分是生成路径下解释器运行时依赖将红色部分拷贝到C++编译主ExE路径下即可,并把需要允许的py文件页考过去(也就是.py文件需和编译生成的.exe文件放在一起)蓝色部分是VS配置编译时依赖,需要添加到vs工程的环境中2.VS配置在vs中进行配置3.实例python程序def testReturn1(s.

2020-10-30 14:33:10 2768 13

原创 osg场景中的物体的框选

class BoxPicker : public osgGA::GUIEventHandler{public: BoxPicker() { x=0.0f; y=0.0f; OK= false; } osg::observer_ptr<osg::Geometry> geometry; virtual bool ha...

2020-10-19 21:32:56 1208

原创 OSG屏幕坐标——相机坐标——世界坐标之间的转换

osg::Vec3d TrackballRotate::screen2World(osg::Vec3 screenPoint)//将屏幕坐标转换到世界坐标{ osg::Vec3d vec3; osg::ref_ptr<osg::Camera> camera = viewer->getCamera(); //osg::Vec3d vScreen(x,y, 0); osg::Matrix mVPW = camera->getViewMatrix() *.

2020-10-19 19:41:37 3225 1

原创 osg读取自定义格式插件

#include <sstream>#include <osg/Image>#include <osg/Group>#include <osg/Notify>#include <osg/Geode>#include <osg/Shape>#include <osg/ShapeDrawable>#include <osgDB/FileNameUtils>#include <osgDB/Fi.

2020-09-30 17:11:09 539

原创 visual studio 2017使用OCCI连接oracle数据库

因为项目要使用到VS连接oracle数据库,所以有了这篇博文。首先,连接oracle数据库有四种方法,OLD,ODBC,oracle developer tools for visual studio(ODT,这个是需要在oracle官网上下载相关的软件支持的),最后一种方法就是今天要演示的使用OCCI连接oracle数据库。前面的三种方法都是用.net框架去连接,最后一种使用的是C++的方式。首先需要确定你是用的oracle的版本,因为这将决定你是用的VS版本和OCCI软件包版本。我在项目中使用的

2020-07-06 19:41:38 857 1

原创 oracle12c安装配置

Oracle 12c下载打开Oracle的官方中文网站,选择相应的版本即可。下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html选择合适自己的版本就行,这里我用的是64位Oracle 12c安装步骤双击setup.exe文件,就可以进行安装了。可以跳过在此步骤中,选择要安装Oracle数据库的文件夹,记住全局数据库名称和密码之

2020-07-06 19:33:21 954

原创 OpenCASCADE编译

1.下载下载OpenCASCADE库https://www.opencascade.com/content/latest-release第三方依赖库https://www.opencascade.com/content/3rd-party-components2.解压3.利用CMake进行编译参数设置如下:3RDPARTY_DIR 这个表示第三方库的位置,将其修改为你的位置INSTALL_DIR 这个表示OpenCascade最后生成的链接库的位置,将其修改为你的..

2020-05-18 15:24:42 936

原创 VS2017 FFmpeg配置

首先需要去FFmpeg官网下载相应的内容:下载地址为:https://ffmpeg.zeranoe.com/builds/,这里有三种类型的:static、shared、dev。包含三个版本:Static、Shared以及DevStatic --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,体积都很大,相关的DLL已经被编译到exe...

2020-03-02 22:05:07 626

原创 QString、Qbytearray、string的相互转换及相关问题

String和QString之间的转化可以按照如下进行:QString qstr;string str;str = qstr.toStdString();qstr = QString::fromStdString(str);但是这样会出现中文乱码的问题,可以按照如下进行处理:std::string cstr; QString qstring; //从std::stri...

2019-12-29 11:35:06 5695 1

原创 矩阵和向量的乘法顺序

向量有两种表达形式,行向量和列向量,对应的矩阵也有行矩阵和列矩阵。采用哪种形式和左右手系无关。行矩阵:三个轴向量为前三行,最后一行为位移变换连乘时从左到右接合,左边的变换先应用变换向量时为vector * matrixDirectX采用的是行矩阵,向量是行向量列矩阵:三个轴向量为前三列,最后一列为位移变换连乘时从右到左接合,右边的变换先应用,注意这和*运算符的接合顺序相反变换...

2019-12-02 21:11:09 1554

原创 vlc-qt编译VS2017+QT5.9.0

最近为了做RTMP推流,准备先拿QT+VLC学习一下,首先就是编译VLC一,下载VLC-QT下载通过官网:https://vlc-qt.tano.si/提供的库是QT5.6.1 + VLC2.2.41)源码包直接去GITHUB下载vlc-qt.zip源码包: https://github.com/vlc-qt/vlc-qt2)VLC库官方是用vlc2.2.4,所以我...

2019-11-13 13:39:51 2048

原创 osg-FBX插件配置

本文是在已经配置好osg的基础上进行的。首先下载FBX的SDKhttps://www.autodesk.com/products/fbx/overview下载好适合自己的版本后,进行安装,记录好安装的位置利用之前osg编译好的CMake文件,在之前的基础上只进行FBX项目的添加include、lib然后configure和generate。这时在之前osg的目录下就...

2019-10-15 19:21:41 1865 4

原创 OSGExp

https://sourceforge.net/projects/osgmaxexp/files/在网站下载,安装3dmax对应版本即可,3dmax导出列表就会有osg等格式

2019-10-15 16:31:51 853

原创 QT MQTT编译与测试

Qt搭建MQTT编程环境介绍 Qt在5,10版本开始支持mqtt,但是也没有集成到安装包里面,需要自己下载编译。 这里使用的qt开发版本为Qt5.9.0下载mqtthttps://github.com/qt/qtmqtt编译mqtt(注意:使用release编译)用QTCreator打开最外层的.pro,选择构建会发现提示找不到头文件<...

2019-09-27 19:17:16 703

原创 程序在Debug模式和Release模式下运行不同代码的方法

#ifdef _DEBUG //your debug code#else //your release code#endif

2019-09-05 10:36:07 723

原创 osgearth 利用经纬度得到高程

首先就是中所周知的由世界坐标转成经纬度的方法,鼠标操作获取地理信息都是这样的。如果已知经纬度,要得到高程主要有以下两种方法。方法一:GeoPoint gp(mapNode, lon, la, 0.0);double query_resolution= 0.0;double actual_resolution = 0.0;float elevation = 0.0f;osgEa...

2019-09-04 19:29:45 2668 3

原创 Qt遍历文件夹和文件目录

bool FindFile(const QString &path){ QDir dir(path); if(!dir.exists()) { return false; } dir.setFilter(QDir::Dirs | QDir::Files); dir.setSorting(QDir::DirsFirst...

2019-08-29 10:24:29 893

原创 QT5视频播放器制作

这里使用QT自带的QMediaPlayerQMediaPlayer是对底层播放框架DirectShowPlayerService的封装,具体格式依赖播放框架,Windows上就是DirectShow,安装LAVFilters之类的DirectShow解码框架就可以支持更多的格式,Linux下是GStreamer附上两个链接LAVFilters论坛LAVFilters下载安装完成后...

2019-08-20 11:36:04 2852 7

转载 Qt之XML读写

一、简介1、什么是xml:http://www.runoob.com/xml/xml-tutorial.html2、在Qt中有两种方式来读写xml1)快速解析:QXmlStreamReader 、QXmlStreamWriter。这是一种快速的基于流的方式访问 XML 文档,它只需读取文档一次,然后像一个遍历器从头到尾一次性处理 XML 文档,期间不会有反复的情况,也就是不会...

2019-08-19 16:14:31 408

原创 osgEarth读取KML文件

//载入KML osgEarth::Drivers::KMLOptions kml_options; kml_options.declutter() = true; // set up a default icon for point placemarks: osgEarth::Symbology::IconSymbol* defaultIcon = new osgEarth::Sym...

2019-08-19 16:08:34 1879 6

原创 three.js利用顶点信息及faceVertexUvs为立方体的每个面贴图

通过以上方法才可以利用UV为Mesh添加纹理利用以下代码可以为不同面贴上不同的纹理,也可以修改为所有面共用一个纹理point//顶点pointindex//顶点索引var cubeGeometry = new THREE.Geometry();var verticesOfCube = point;var indicesOfFaces = pointindex;cubeGeo...

2019-08-06 17:15:06 3115

原创 THREE.js—绘制弧线(CatmullRomCurve3)

CatmullRomCurve3通过一系列的点来创建一条平滑的曲线。//Create a closed wavey loopvar curve = new THREE.CatmullRomCurve3( [ new THREE.Vector3( -10, 0, 10 ), new THREE.Vector3( -5, 5, 5 ), new THREE.Vector3( 0, 0, ...

2019-08-06 11:20:46 7414

转载 Three.js鼠标点击平面实现任意画线功能

操作步骤:鼠标指针移入三维网格平面之中,按下左键即可画线,画线过程中,若鼠标移出平面则停止绘制,再次移入则进行上次继续画线,鼠标右键结束绘制,Esc键退回上一步骤。通过Raycaster获取鼠标坐标在网格平面上任意位置绘制线段,就需要获取点击位置的向量Vector3,获取之后就可以确定第一个点的位置,一条直线由两个点来确定,由此,需要获取鼠标点击位置。在写代码之前,需要了解一下THRE...

2019-08-05 20:11:07 6479 7

原创 关于Chrome浏览器使用ajax访问本地文件报 Cross origin requests are only supported for HTTP

刚刚开始学JS,发现有的时候运行别人的例子会报错Cross origin requests are only supported for HTTP查了几个解决方案,看到给浏览器传入启动参数(allow-file-access-from-files),允许跨域访问。Windows下,运行(CMD+R)或建立快捷方式:"C:\Program Files (x86)\Google\Chro...

2019-08-02 09:53:42 515

原创 QtOpenglWidget中使用原生函数写FBO注意事项

因为Qt后台是用framebufferobject 来实现的,所以要在paintGL()中开始你的fbo之前,通过glGetIntegerv(GL_FRAMEBUFFER_BINDING,&originalFBO),保存QT原有的FBO,结束绘制你的FBO,就要glBindFrameBuffer(GL_FRAMEBUFFER,originalFBO)再次绑定了paintGL()...

2019-07-26 11:27:05 684

原创 OpenGL坐标变换

OpenGL坐标变换在理解OpenGL的坐标变换问题的路上,有好几个难点和易错点。且OpenGL秉持着程序难以调试、难点互相纠缠的特色,更让人迷惑。本文依序整理出关于OpenGL坐标变换的各个知识点、隐藏规则、诀窍和注意事项。MatrixOpenGL用4x4矩阵进行坐标变换。OpenGL的4x4矩阵是按列排列的。忘记glRotatef(),glScalef(),glT...

2019-07-25 20:09:18 406

转载 判断多边形边界曲线顺/逆时针 两种方法

方法一:Green公式Green公式揭示了平面区域的二重积分和封闭曲线上的线积分的关系。其中L+表示沿着封闭区域的边界曲线正向。并且由Green公式的推导过程我们知道:这里若L=-y,可以保证(1)式子在区域中恒正,且等于封闭区域面积。同理,M=x,也可以保证(2)式子在区域中恒正,且等于封闭区域面积。所以我们只需沿着多边形的边求曲线积分,若积分为正,则...

2019-07-24 15:18:56 5153 1

原创 NodeVisitor的使用-遍历Geode节点下的Geometry并获取顶点、法向量等数据

struct Subset{ std::vector<float> vertexs;//位置 std::vector<float> normals;//法向 std::vector<float> texCoords;//纹理 std::vector<unsigned int> indices;//索引下标 ...

2019-07-23 17:24:55 1428

转载 Qt5 QOpenGLWidget类

QOpenGLWidget 类QOpenGLWidget 类 public函数 信号 protected函数 Reimplemented Protected 函数 附加成员 详细描述 绘制技巧Painting Techniques OpenGL函数调用头文件和QOpenGL函数 与QGLWidget的关系 与QGLWidge...

2019-07-23 08:54:18 920

原创 3D模型下的鼠标拣选和碰撞检测-射线与圆的相交算法

在实际应用中,常常使用包围球或者包围盒代替物体与拾取射线进行相交测试,假设拾取射线与包围盒或者包围球相交,就认为拾取射线与物体相交了,其实,在3d世界中有很多的计算都是不精确的,只是简单的模拟,近似的操作。因为确实也不需要必须要完全精确。以包围球为例子,包围球可以用球心o与半径r来表示,假设点p在包围球上,即满足条件:||p-o|| = r即点p到球心o的距离等于球体半径r,...

2019-07-21 17:12:55 468

转载 OSG绘制空间凹多边形并计算其面积

1. 思路这个问题其实涉及到OSG中的两个问题:多边形分格化和几何图元遍历。1) 多边形分格化在OpenGL/OSG中,由于效率的原因,默认是直接显示的简单的凸多边形。如果直接强行显示凹多边形,渲染结果是不确定的。所以对于复杂的凹多边形,需要将其分解成简单的凸多边形,这个过程就是多边形分格化。在OSG中是通过osgUtil::Tessellator类来实现多边形分格化的。2) 几何...

2019-07-18 20:49:51 661

空空如也

空空如也

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

TA关注的人

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