- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 面向对象的基本原则【学习、记录】
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。就一个类而言,应该仅有一个引起它变化的原因。一个软件实体应当对扩展开放,对修改关闭。如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型S是类型T的子类型。所有引用基类(父类)的地方必须能透明地使用其子类的对象。高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。要针对接口编程,不要针对实现编程。
2024-12-25 18:05:49
264
原创 QGIS源码学习--QGIS整体框架分析
qgis、qgis_app、qgis_core、qgis_gui、qgis_analysis、qgis_3d、provider_系列,test_系列,plugin系列、authmethod系列、python系列等。(4)qgis_gui:也是一个基础支撑模块,可以说与core一起组成qgis核心基础支撑,包含一些通用gui的实现代码。(2)qgis_app:包含的qgis整个应用界面的实现与组装,实现了QGIS软件界面及其交互过程。(3)qgis_core:实现了对数据、工程的管理,属于核心模块。
2024-06-07 21:17:12
629
原创 基于后缀表达式的四则运算求值
最近学习数据结构,说到栈结构的一大应用就是基于后缀表达式的四则运算求值,那么什么是后缀表达式呢?让我们来简单举个栗子:比如我们正常的数学表达式 3+1,我们称这种表达式为中缀表达式其后缀表达式为3 1 +,嗯...,没错,就是把运算符号写在相互运算的两个数字的后面
2022-11-06 22:18:11
348
原创 数据结构 —— 栈的顺序存储结构与链式存储结构 代码
最近复习数据结构,学到栈这里,说到栈是限定仅仅在表尾进行插入和删除操作的线性表,其实现同线性表一样具有顺序存储结构与链式存储结构两种实现方式,本人基于着两种方式对栈结构进行了实现
2022-11-06 21:29:22
259
翻译 OPENDL —— glGenFramebuffers 生成帧缓冲区对象
glGenFramebuffers返回id中的n个帧缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用glGenFramebuffers之前,没有任何返回的名称正在使用。
2022-10-25 21:08:29
438
翻译 OPENGL—— glGenVertexArrays 生成顶点数组对象
glGenVertexArrays在数组中返回n个顶点数组对象名称。不能保证这些名称形成一组连续的整数;但是,可以保证在调用glGenVertexArrays之前没有使用任何返回的名称。调用glGenVertexArrays返回的顶点数组对象名称不会由后续调用返回,除非首先使用glDeleteVertexArrays删除它们。数组中返回的名称被标记为已使用,仅用于glGenVertexArrays,但它们仅在首次绑定时获取状态和类型。
2022-10-19 21:48:08
948
原创 OPENGL —— 创建顶点着色器
使用GLSL语言编写着色器使用glCreateShader创建着色器对象使用glShaderSource把这个着色器源码附加到着色器对象使用glCompileShader编译着色器使用glGetShaderiv检查编译是否成功
2022-10-18 21:12:33
293
翻译 OPENGL—— glBufferData / glNamedBufferData
glBufferData和glNamedBuffer数据为缓冲区对象创建新的数据存储。对于glBufferData,使用当前绑定到目标的缓冲区对象。对于glNamedBufferData,将改用与缓冲区中调用者指定的ID关联的缓冲区对象。
2022-10-18 20:31:45
331
翻译 OpenGL—— glBindBuffer
glBindBuffer将缓冲区对象绑定到指定的缓冲区绑定点。调用glBindBuffer时,将目标设置为一个可接受的符号常量,并将缓冲区设置为缓冲区对象的名称,将该缓冲区对象名称绑定到目标。如果不存在名为buffer的缓冲区对象,则会使用该名称创建一个缓冲区对象。当缓冲区对象绑定到目标时,该目标的前一个绑定将自动断开
2022-10-17 21:42:55
449
翻译 OpenGL —— glGenBuffers
glGenBuffers在缓冲区中返回n个缓冲区对象名称。不能保证这些名称形成一组连续的整数;但是,可以保证在调用glGenBuffers之前没有使用任何返回的名称。调用glGenBuffers返回的缓冲区对象名称不会由后续调用返回,除非首先使用glDeleteBuffers删除它们。
2022-10-17 21:20:11
539
原创 Qt Widgets C++ --- Main Window and Related Classes --- QDockWidget
dockWidget是支持悬浮与停靠的Widget,Dock窗口是位于QMainWindow中中央小部件周围的Dock小部件区域中的辅助窗口,可以在其当前区域内移动,移动到新区域,浮动等。QDockWidget由标题栏和内容区域组成。标题栏显示dockwidgets窗口标题、浮动按钮和关闭按钮。QDockWidget充当其子小部件的包装器,用setWidget()设置。如下图所示,在VS中,输出、错误列表、解决方案管理器等窗口都类似这里的dockWidgetQt。...
2022-07-31 15:55:48
241
原创 Qt Widgets C++ --- Main Window and Related Classes --- QMdiArea
介绍关于与QMidArea的使用
2022-06-26 17:54:19
388
原创 PIESDK二次开发——矢量数据的创建与保存(C#)
强调文本 强调文本加粗文本 加粗文本标记文本删除文本引用文本H2O is是液体。210 运算结果是 1024。
2021-09-18 15:31:04
788
原创 PIESDK二次开发——C++(QT)组件式二次开发
PIESDK二次开发——C++(QT)组件式二次开发新建Q tWidgets Application工程,选中Debug(Core,GUI,Widgets),然后点击 next -> finish;配置环境(1)在工程文件夹下,新建(myApp)文件夹,然后将PIESDK中的Debug_x64以及config文件夹复制到新建文件夹下,删除Debug_x64下多余内容(保留dll文件以及所有文件夹内容即可)(2)属性 —— 常规 ——输出目录:选择…\MyApp\Debug_x6.
2021-09-07 09:57:04
1169
1
原创 PIESDK二次开发——栅格数据的读取与保存
PIESDK二次开发——栅格数据的读取与保存1、栅格数据的读取使用IMapControl接口,// 函数原型:bool AddLayerFromFile(String filePath,int toIndex); // 在当前地图显示控件中通过文件路径添加图层,参数为目标文件路径及添加到的索引值。// 示例:IMapControl mapControl = null;mapControl = mapControl1;mapControl.AddLayerFromFile(".
2021-08-16 14:57:45
1114
原创 字符串操作
C++字符串操作构造函数1)string(const char *s) :将 string 对象初始化为 s 指向的字符串2)string(size_type n,char c) :创建一个包含 n 个元素的 string 对象,其中每个元素都被初始化为字符 c3)string(const string &str) :将一个 string 对象初始化为 string 对象 str(复制构造函数)4)string() :创建一个默认的 string 对象,长度为 0(默认构造函数).
2021-08-12 16:28:25
193
原创 PIE-SDK 二次开发之插件式二次开发
PIE-SDK 二次开发PIE-SDK是一套PIE的可重用的通用的二次开发组件集,基于PIE-SDK我们可以进行组件式和插件式的二次开发,下面我将分别介绍如何使用PIE-SDK进行组件式和插件式的二次开发注:需要安装好vs2015以及PIE-SDK插件式二次开发PIE-SDK 支持我们进行Command、Tool以及Control三种类型的插件的二次开发,同时为我们提供了可直接使用的PIE桌面应用程序的界面,其中:Command,命令,功能不需要鼠标和地图进行交互,例如全图显示,点击按钮
2021-08-09 13:52:34
1534
原创 PIE-SDK 二次开发之组件式二次开发
PIE-SDK 二次开发PIE-SDK是一套PIE的可重用的通用的二次开发组件集,基于PIE-SDK我们可以进行组件式和插件式的二次开发,下面我将分别介绍如何使用PIE-SDK进行组件式和插件式的二次开发注:需要安装好vs2015以及PIE-SDK组件式二次开发为支持组件式二次开发,PIE-SDE为我们提供了MapControl、TOCControl、PageLayoutControl三个控件使用,其中MapControl控件主要用于地图数据的显示和分析,TOCControl主要用于显示数
2021-08-08 18:31:49
1445
原创 GDAL常用命令——遥感图像处理
GDAL常用命令——遥感图像处理最近在做一些遥感图像处理的工作,经常会调用一些gdal的命令对遥感影像进行处理,下面我将对一些常用的gdal命令进行简介,以便今后的学习与使用gdal 栅格图像处理常用命令1、 gdalinfo 查询栅格数据集信息, 常用参数:-json 以json格式输出数据;例子:gdalinfo XXX.tif2、gdal_translate 该命令可以在不同格式之间转换栅格数据,如数据类型转换以及设置无效值等常用参数:-ot 强制输出图像带具有驱动程序支持的特
2021-08-07 14:43:25
1466
原创 SpringBoot 向容器中添加组件
SpringBoot 向容器中添加组件使用@Configuration+@Bean方法首先编写一个要加入的组件类,(一般情况在主程序文件夹下兴建Bean文件夹,将组件类存放在其中,我的路径如下com.example.demo.Bean)示例如下:package com.example.demo.Bean;public class Person { public String name; public int age; public Person(){} publ
2021-01-20 21:51:58
626
原创 PyQt tableview使用方法
最近的实习任务中要求使用pytq进行qgis的二次开发,在这个过程中那我们用到了tableview这个插件,对于这个插件,我们要求通过选择事件在tableview里面显示数据,更改表格数据并获取更改后的数据,下面我将逐步介绍如何实现此操作:使用QT designer设计一个table view控件,如下图所示:上面两个按钮,一个用来生成数据、一个用来获取数据;在设计完成ui界面以后,接下来我们要将ui界面转换成py文件;我们ui.py文件内容如下:// ui.py# -*- coding.
2020-06-10 20:13:09
10134
原创 QGIS插件开发(Python+Qgis+pyqt+pycharm)
在最近的实习课程中,我们老师要求我们使用pycharm+pyqt+qgis库生成独立应用,然后通过修改将其转换成QGIS插件。通过老师的介绍可知一般情况下一个插件必须包含一下四个文件:1、初始化文件__init__.py2、插件主体文件plugin.py3、生成界面文件form.ui所转换的form.py4、插件元数据文件meradata.txt一般情况下,伴随ui文件会有一份资源文件生成,即resources.qrc,如果你的插件没有资源文件,那么将可以直接不要此文件综合上面的介绍一个插件的
2020-06-03 16:03:44
2751
site_selection_plugin_changed.rar
2020-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人