- 博客(229)
- 资源 (30)
- 收藏
- 关注
原创 在Qt中获取当前路径的方法
除了以上几个函数提供的路径外,我们还可以自定义路径。例如,如果需要在应用程序所在路径下创建一个data文件夹,并且将数据文件存储在里面,可以使用以下代码:首先通过currentPath()获取应用程序当前所在路径,然后通过字符串拼接的方式获得data文件夹的完整路径。最后使用QDir的mkpath()函数创建该文件夹。使用QCoreApplication提供的applicationDirPath()函数获取应用程序运行路径。使用QDir提供的currentPath()函数获取当前工作路径。
2024-05-22 12:18:28 348
原创 【c++】linux删除文件夹(包括路径下文件)
需要注意的是,在使用 system() 函数时要小心输入的命令,确保命令参数的安全性,避免潜在的安全风险,比如命令注入攻击。建议在使用 system() 函数时谨慎处理用户输入的数据,并进行充分的错误处理和安全性检查。在 Linux 上使用 C++ 删除文件夹的代码可以使用 POSIX 标准库的 头文件和系统调用的 rmdir() 和 remove() 函数。请注意,这只是一个简单的例子,实际应用中可能需要更加复杂的错误处理和安全性检查,例如检查文件夹是否存在、是否有删除权限等。
2024-05-22 11:11:38 262
原创 C:通过fwrite和fread读写数据结构
如果发生错误或到达文件末尾,则 fread()返回的值将小于参数 nmemb,那么到底发生了错误 还是到达了文件末尾,fread()不能区分文件结尾和错误,究竟是哪一种情况,此时可以使用 ferror()或 feof() 函数来判断。返回值: 调用成功返回一个指向 FILE 类型对象的指针( FILE * ),该指针与打开或创建的文件相关联, 后续的标准 I/O 操作将围绕 FILE 指针进行。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。如果文件不存在,则创建文件。
2024-05-21 10:32:59 657
原创 【C++】—— 工厂模式详解
1、优势2、缺点尽管工厂模式在许多情况下是一种有用的设计模式,但它也有一些缺点需要考虑:但是尽管工厂模式存在上述缺点,但在许多情况下它仍然是一种有用的设计模式。在实际应用中,我们需要权衡使用工厂模式带来的好处和缺点,并根据具体情况进行选择。工厂模式可以分为三种不同的类型:简单工厂模式、工厂方法模式和抽象工厂模式。简单⼯⼚模式实现由⼀个⼯⼚对象通过类型决定创建出来指定产品类的实例。接下来,我们看代码演示:运行结果如下:工厂方法模式定义一个创建对象的接口,但将实际的实例化延迟到子类中。每个子类都可以根据需
2024-05-10 22:20:04 729
原创 C++多态(超级详细版)
多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会 产生出不同的状态。举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人 买票时是优先买票。在继承中要构成多态还有两个条件:1. 必须通过基类的指针或者引用调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写public:virtual void BuyTicket() { cout
2024-05-10 16:08:22 834
原创 CGAL-5.5.2简单编译通过的例子的pro配置
3、以及通过CGAL官网下载的编译好的X64-VC14的库,包括CGAL-5.5.2-win64-auxiliary-libraries-gmp-mpfr.zip。提示:如果版本不一定一致,通过编译错误,尝试替换boost版本;自带的例子是通过CMAKE组织的编译,先通过cmake-gui生成vs的sln,在进行编译。本文介绍通过Qt的pro组织的代码工程配置。2、CGAL-5.5.2 + boost 1.71(看boost最少要求1.66,太新了1.82也能可能遇到编译不过问题)
2024-05-08 16:07:45 199
原创 CGAL在ubuntu下的安装及Hello World的测试
在我们到目前为止看到的示例中,该函数采用两个用于输入点范围的迭代器和一个用于写入结果的输出迭代器。乍一看,执行精确谓词和构造的内核似乎是完美的选择,但性能要求或有限的内存资源使其并非如此。它将允许使用更通用的投影特征对象来存储状态,例如,如果投影平面由方向给出,则该方向在类中是硬连线的Projection_traits_yz_3。另一个示例是关于用户定义的点类型,或来自 CGAL 之外的第三方库的点类型。至于第二个问题,考虑一个我们想要计算投影到平面上的 3D 点的凸包的应用程序yz。
2024-05-08 16:03:28 966
原创 Linux下安装gmp6.2.1的详细操作(深度学习)
如果使用第一种方式仍然有问题的话,可以尝试使用下面的安装方式,当初我再使用第一种安装后仍然没有任何效果,然后用了又执行了下面的代码,发现之后就可以了。# /usr/local换成自己的安装路径。用了又执行了下面的代码,发现之后就可以了。1. 官网下载gmp安装包。4. 指定安装路径进行安装。2. 解压下载好的安装包。3. 进入解压后的文件夹。# 配置刚才的安装路径。
2024-05-08 14:49:46 490
原创 Linux(Ubuntu)安装CGAL(非root)
默认路径需要root权限,添加参数-DCMAKE_INSTALL_PREFIX。我安装的是1.77.0的版本。
2024-05-08 11:35:40 392
原创 格网DEM生成不规则三角网TIN
在GIS(地理信息科学)中,地形有两种表达方式,一种是格网DEM,一种是不规则三角网TIN。一般情况下规则格网DEM用的比较多,因为可以将高程当作像素,将其存储为图片类型的数据(例如.tif)。但是规则格网存储的数据量大,按规则取点,并不能最大程度的保证地形特征,所以很多情况下需要将其表达为不规则三角网,也就是TIN。
2024-05-08 10:54:37 667
原创 CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)
CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。CGAL只是一个头文件库(从5.0版本开始),这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。。CGAL-5.2.1支持vs2015,vs2017和vs2019。他有两个必须安装的依赖项Boost和。CGAL有两种安装方式,一种是使用Vcpkg库管理器,另一种是下载CGAL源代码。官方手册两种方式都有,这里选择第二种方式安装。
2024-04-29 11:44:45 768 2
原创 Microsoft.VisualStudio.Editor.Implementation.EditorPackage did not load correctly
我的版本是VS2022,用的方法1解决的问题。
2024-04-29 10:51:53 169
原创 CGAL的安装与在VS中的配置
从5.0版本开始,CGAL仅是一个头文件库,这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。3. 设置环境变量,这帮助cmake找到boost。将gmp的lib路径添加到环境变量path中!CGAL只是一个头文件夹包,故只要引用头文件即可。打开属性页,在C/C++命令行中加/bigobj。,帮助cmake在配置过程中找到CGAL。Boost是CGAL的强制依赖库。进行下载,建议安装QT5.13.1。至此,CGAL的环境彻底配置完毕!没有配置qt的,导致上图结果。2. 运行下载器,安装到。
2024-04-29 09:41:18 875
原创 CGAL 点云数据生成DSM、DTM、等高线和数据分类
原文链接在GIS应用软件中使用的许多传感器(如激光雷达)都会产生密集的点云。这类应用软件通常利用更高级的数据结构:如:不规则三角格网 (TIN)是生成数字高程模型 (DEM) 的基础,也可以利用TIN生成数字地形模型 (DTM)。对点云数据进行分类,提取地面、植被和建筑点(或其他用户定义的标签)等分类数据,从而使得获取的信息更加丰富。因空间数据源获取方式不同,数据结构的定义也不尽一致。
2024-04-28 18:35:29 1192
原创 100%解决PCL点云处理使用vtk可视化,“no override found for vtk actor“问题
在pcl使用vtk可视化,遇到"no override found for vtk actor"问题,请在工程链接器中添加"opengl32.lib“即可。
2024-04-28 14:00:20 451
原创 VTK(Activiz)场景应用:将离散点构建三角网、等值线、颜色渲染、等值线值标注
*中间数据:**离散点三角剖分拓扑关系(即哪几个点构成了哪一个三角形),常用数据组成为(三角形序号,点1序号,点2序号,点3序号)的渲染,即一个区域由一堆点元控制,每个点元(结点)有一个数据属性,例如一口井的水位值、一座烟囱的排放量…**必备数据:**离散点数据(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3)…看作一个标量单位,适用于对。
2024-04-28 10:30:53 1053
原创 绘制等值线地图——以气压等压线为例(Python版)
在conda完成安装后在anaconda prompt输入如下指令配置本次使用的一些Python库。查看气压属性数据slp_values的数组维度信息。完成windows系统上conda的安装。
2024-04-26 17:32:31 394
原创 史上最全的QMap遍历方式
使用C++11的for循环遍历和std::for_each遍历QMap的方式最为常用和简洁,效率也比较高,占用资源较少。但是,不同的遍历方式适用于不同的场景,需要根据具体情况选择合适的遍历方式。如果需要修改QMap中的元素,应该使用迭代器进行遍历。如果只需要读取QMap中的元素,可以使用const迭代器或者C++11的for循环遍历。
2024-04-25 19:11:34 452
原创 绘制等高线图的算法
实际地图上实用的单位是米,但我们显示时使用的单位是像素,这里面有一个转换的关系。而且,显示的图形有可能需要缩放。所以我们收集的数据,x和y统一使用相对值。我们把总长和总宽都定为1,实际的坐标相对于单位1来定。例如地图长8km,然后我们的坐标点x为1km,那么x就是1/8=0.125。实际上,等高线图是分成一个一个网格的,我所使用的网格大小是10*10。每个网格里的线和颜色组成了整张的等高线图。
2024-04-25 16:19:30 691
原创 等值线算法
我们令黑点上的值大于阈值(等值线值)时为1,小于阈值时为0,我们可以保存在一个4位2进制内。比如我们的1,2,4号顶点标记为0。我们还可以同样的建立一个线表,表示该网格连接的线为哪两条边(由于有可能出现2条线的情况,所以我们第二维用大小为5的数组,便于之后的遍历)。通过网格索引获取边信息,然后转化为所有边的编号,然后获取边的两个顶点,进行插值计算点的位置,我们就保存该点的位置信息和边编号。通过网格索引,获取连线的两个顶点信息,通过在边索引表阶段保存的点信息和编号,保存连线的最终点信息。
2024-04-24 16:34:26 574
原创 通过标准网格点计算等值线
本资源提供了通过输入标准网格点数据计算等值线的接口,接口通过Qt实现,调整部分数据类型后也可转为C++代码。接口使用也比较简单,将本资源的源码添加到工程中,然后调用。函数即可得到等值线。该函数输入有2个,第一个是所有标准网格点的值,第二个参数是等值线的间隔。ContourGenerator.cpp接口实现代码文件。ContourGenerator.h接口定义头文件。struct.h:结构体定义文件。
2024-04-24 16:08:47 133
原创 【OSG】OSG环境部署 OSG3.6.5+vs2017+win10_x64(超详细)
原文链接最近开始了OSG的学习,开始搭建OSG开发环境,期间遇到了很多问题,也查阅了很多资料,最终搭建成功。OSG本来就是开源的,不应该敝帚自珍,应该多交流多分享,所以在此记录一下环境搭建的过程,方便以后查阅和交流。
2024-04-24 14:13:53 1004
原创 C/C++代码检查工具——Qt creator 中安装cppcheck插件
pc-lint是资格最老,最强力的工具,但是是收费软件,并且配置起来有一点点麻烦。是免费的开源软件。使用起来也很方便。我在qt creator集成cppcheck插件 绕了点弯,所以记录一下;
2024-04-22 17:13:33 432
原创 C/C++ 静态代码检查工具cppCheck
Cppcheck是一个用于C/C++代码的静态分析工具,它可以帮助开发者检测代码中的错误;Cppcheck可以检测出许多类型的错误,包括语法错误、未使用的函数、内存泄漏、未初始化的变量等;Cppcheck还支持用户自定义规则,这使得开发者可以根据自己的需求定制Cppcheck的行为;使用--suppress如果你想要忽略某些警告,可以在命令行中使用 --suppress 选项。
2024-04-22 16:56:35 887
原创 error while loading shared libraries解决
因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下 /sbin/ldconfig使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果编译过程中报错,缺少xxx库,去查看发现明明就在那放着,搞的想大骂computer蠢猪一个。需要注意的是:第二种搜索路径的设置方式对于程序连接时的库(包括共享库和静态库)的定位已经足够了,但是对于使用了共享库的程序的执行还是不够的。
2024-04-22 11:41:05 944
原创 error while loading shared libraries的解决方案
当运行程序时会出现如下类似错误时:默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定–prefix,会将库安装在/usr/local/lib目录下;当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。在明确已经安装该库的情况下出现上述错误,可能是这个库目录并没有加入到该环境变量中,解决办法如下。
2024-04-22 11:37:19 1092
原创 Ubuntu 安装 GDAL C++库
新版本需要安装PROJ依赖库,PROJ又依赖sqlite3和libtiff4,依次安装即可。具体情况可能不同,不过可以从GDAL开始安装,根据提示逐渐安装相应的包即可。),在/usr/local/lib文件夹中产生5个库文件,其中libgdal.a和libgdal.la为静态链接库,libgdal.so等为动态链接库。下载的是proj-8.0.0.tar.gz,最新版的解压后没有configure文件,就挑选了proj-8.0.0.tar.gz。我采用的是直接命令安装,安装后,输入命令。
2024-04-20 10:29:32 816
原创 Proj 理空间坐标转换库安装及c++引用该库(linux系统)
坐标时,做一些坐标计算,如果直接使用GPS坐标会导致精度下降,或是不适用计算模型,这时候就需要将GPS坐标转化为平面坐标。在安装过程中如果遇到问题可以联系我,一般问题都是版本没有对应好。,该链接里有跳转proj主页的连接,上面有相关。
2024-04-20 00:02:59 346
原创 NetCDF(nc)读写与格式转换介绍
由于栅格结构是按照一定的规则排列的,因此其所表示实体的位置很容易隐含在网格文件的存储结构中,每个存储单元的行列位置可以根据其在文件中的记录位置得到,而行列坐标可以很容易地转换成任意坐标系下的坐标。在NetCDF的基础上,随着软硬件和应用场景的变化,逐渐发展出了多个版本,不同版本的文件格式各有不同。公约,其目的是要求符合要求的数据集包含足够的元数据,这些元数据是自描述的,即文件中的每个变量都有对其所表示内容的相关描述,包括物理单位(如果适用),并且每个值可以位于空间(相对于基于地球的坐标)和时间中。
2024-04-19 18:11:09 1178
原创 vs2013+NetCDF4.4.2一维数据读取
仔细观察的数据对吗,数据貌似和表格中的有点出入,但出入不大,这是因为表格中存储的都是小数点后保留一位,而我们读取的是保留小数点后两位,仔细看数据图表格头上的数据。(数据中显示的小数点后几位是可以调节的,和你打开使用的工具有关系)说明:由于自己目前正在学习NC文件的读取与写入并不是擅长难免有错,这里只是自己的一点思路,希望能帮助刚开始学习的人。后续自己会把自己的一些心得分享出来。测试的是读取一维经度是的数据,该数据个数总共有241个。环境:win7+vs2013+NetCDF4.4.2。
2024-04-19 16:32:12 213
原创 vs2013+NetCDF二维数据的读取方法
说明:根据自己的实际情况请参考使用,更多问题请参考博客中的其他文章。环境:win7+vs2013+NetCDF4.4.2。
2024-04-19 16:31:12 152
java Threads and the Concurrency Utilities
2017-10-08
jquery官方指定教材三本
2017-06-18
java se 8.0 pdf
2017-03-09
银河麒麟V10环境下 netcdf-c-4.9.2, netcdf-cxx-4.3.1相关库
2024-04-19
HLMSEditor/bin目录下缺少的dll文件
2023-05-24
xshell5安装配置.docx
2020-02-25
CGAL Arrangements and Their Applications A Step-by-Step Guide.rar
2020-02-15
架构探险——从零开始写Java Web框架 绝对完整!强烈推荐
2019-01-16
《跟老男孩学习Linux运维:Shell编程实战》带标签目录 绝对完整!!!
2019-01-09
跟老男孩学linux运维 核心系统命令实战-高清-完整-带目录 绝对完整!!! 绝对完整!!!
2019-01-09
跟老男孩学linux运维 web集群实战
2019-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人