自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ std::optional 详解

C++17 模板类类模板管理一个可选的包含值,即一个可能存在也可能不存在的值。optionalstd::pair<T, bool>,optionaloptional的一个常见用例是可能失败的函数的返回值。与其他方法(例如std::pair<T, bool>)相比,optional能很好地处理构造代价高昂的对象,并且更具可读性,因为其意图被明确表达了出来。optionalor任何时候的任何optional实例要么包含一个值,要么不包含一个值。

2025-02-21 17:20:41 1108

原创 VTK 点云处理

【代码】VTK 点云处理。

2025-02-16 15:15:20 526

原创 VTK HelloWorld

第一个VTK程序。

2025-02-16 14:34:45 969

原创 VTK Windows安装

VTK (visualization toolkit)是三维可视化工具包,没有可以直接使用的exe,需要自己编译基于OpenGL 实现,跨平台。

2025-02-16 14:18:15 525 2

原创 【C++】策略模式

【代码】【C++】策略模式。

2025-02-12 23:54:28 399

原创 games101 笔记 04 Transformation Cont

变换续(模型、视图、投影)三维变换Viewing (观测) transformationView (视图) / Camera transformation(摄像机和视图变换)Projection (投影) transformation(3D→2D)Orthographic (正交) projectionPerspective (透视) projection。

2025-02-12 11:35:39 851

原创 games101笔记-03 Transformation

变换为什么学习旋转2维 变换Homogeneous coordinates(齐次坐标)旋转、平移默认从原点开始。

2025-01-20 20:49:22 900

原创 games101笔记-02线性代数回顾

ABB−Aa⋅b∥a∥∥b∥cosθcosθ∥a∥∥b∥a⋅b​cosθa⋅baa∥a∥a​a⋅bb⋅aabca⋅ba⋅c(ka⋅ba⋅kbka⋅b二维a⋅bxa​ya​​⋅xb​yb​​xa​xb​ya​yb​三维a⋅b​xa​ya​za​​​⋅​xb​yb​zb​​。

2025-01-16 20:32:20 1258

原创 【Qt】QThread总结

第一种方法适合创建临时任务,用到了lambda表达式第二种方法适合在线程中处理单一事件,其逻辑简单(只需要新建一个继承自QThread类的对象,重写run函数,然后启动即可)第二种方法,我们可以自定义带参的子线程运行函数,代码简洁;随意修改需要在哪个线程中运行,代码灵活。

2025-01-11 10:23:33 597

原创 【Qt】QFutureWatcher

用于监视QFuture对象的状态和进度QFuture的部分函数与重复侧重于信号槽QFuture直接查询任务状态。

2025-01-08 21:43:57 955

原创 【Qt】QtConcurrent

用于多任务并发的高级API,无需显式管理线程的创建和同步没有事件循环没有任务优先级相比于QThread更方便Cmake添加模块。

2025-01-07 20:41:04 951

原创 贝塞尔曲线推导

贝塞尔曲线是一条参数曲线n个控制点形成的是n-1阶贝塞尔曲线。

2024-12-29 22:27:13 973

原创 【Qt】QEventLoop那些事

概述事件传递QEventLoop类事件循环的嵌套QEventLoop模拟同步主事件循环 app.exec可以对事件分发、事件处理postEvent的事件会先加入事件队列,在下一轮事件循环时处理->达到异步sendEvent是立即同步执行exec 会无限循环,在其后面的内容得不到运行,quit会终止事件循环。

2024-12-25 20:03:54 1351

原创 vs 项目属性表

【代码】vs 项目属性表。

2024-11-28 23:40:35 652

原创 Obsidian多设备同步笔记

那么能不能找到一种既免费,又不用手动上传、下载,是否可以找到一种自动同步的方法呢。Onedrive自动同步的文件夹是固定位置,那么能不能修改文件位置呢。自此已经实现了免费、自动同步、文件位置随意。

2024-11-21 22:53:26 1654

原创 C++ constexpr

C++11新增语法编译器常量,在编译器求值constexpr函数或变量必须满足一定条件才能在编译期求值。如constexpr只能进行简单操作(算术运算、逻辑运算),不能包含运行时才能确定的操作,如内存分配、文件读取。

2024-11-16 18:21:30 1081

原创 C++内存对齐

内存对齐是指编译器在为结构体或类的成员分配内存时,按照一定的规则将成员存放在特定的内存地址上,使得每个成员的起始地址是某个特定值(通常是成员自身大小或一个指定对齐值的倍数),结束时也要内存也要对齐每个特定平台上的编译器都有自己的默认“对齐系数”(32位机一般为4,64位机一般为8)我们可以通过预编译命令,k=1,2,4,8,16来改变这个系数,其中k就是需要指定的“对齐系数”也可以使用#pragma pack()取消自定义字节对齐方式。对齐按照对齐系数和自身占用字节数中,二者比较小的那个进行对齐。

2024-11-13 13:59:26 800

原创 C++单例模式

类的实例只有一个。

2024-11-02 10:51:01 486

原创 C++ Lock

锁管理,与mutex相关使用RAII进行锁管理现代C++里提供了一系列的关于mutex和lock相关的接口。但是mutex和lock是不同的。mutex type可以是mutex等,而lock type则可以是lock_guard等。mutex的生命周期和他保护的data是一致的,可以被不同线程访问。而lock则是在一段代码中用来封装管理mutex的。lock_guard创建即加锁,作用域结束自动析构解锁,无需手工解锁。且不能中途解锁,必须等作用域结束才能解锁。

2024-10-24 22:56:31 995

原创 C++ Mutex

互斥量可以使用在各种方面,常用在对共享数据的读写上。如果有多线程读写一个数据,那么想要保证线程安全,必须对共享变量的读写上锁递归式互斥锁,同一个线程可以多次获得锁,而不会死锁lock和unlock的次数必须相等,其他线程才能获得锁增加了带时限的try_lock以类似的方式,提供排他性递归锁,同线程可以重复获得锁。另外,通过与方法,提供带时限地获得锁,类似。c++ 17 新出的具有独占模式和共享模式的锁。

2024-10-24 00:14:16 1308

原创 误差评估,均方误差、均方根误差、标准差、方差

RMSE是观察值与真实值偏差的平方,对于一组观测值yiy_iyi​和对应的真值tit_iti​RMSE1n∑i1nyi−ti,其中n是观测次数RMSE=\sqrt{\frac1n \sum_{i=1}^n (y_i-t_i)} \text{,其中n是观测次数}RMSEn1​i1∑n​yi​−ti​​,其中n是观测次数MSE是观测值与真值偏差的平方和与观测次数的比,对于一组观测值yiy_iyi​和对应的真值t。

2024-09-22 22:22:12 1591

原创 【Git】Clone

失败时,出现如下错误,可能由于网络连接不稳定或仓库太大导致的。

2024-09-15 09:29:22 481

原创 【C\C++】Eigen初体验(VS Code编译)

Eigen 是一个高效的 C++ 库,专注于线性代数运算。PCL 使用 Eigen 来处理矩阵和向量运算,特别是在点云数据的变换、配准和特征计算等方面。Eigen 提供了高效的矩阵运算功能,使得 PCL 在处理大规模点云数据时能够保持高性能。添加eigen库的路径到编译参数"args".(tasks.json)下载稳定(release)版本即可,然后解压到本地。

2024-09-13 15:12:59 562

原创 【C/C++】变量命名规范

当然对于临时变量签名需要加。

2024-09-07 16:59:22 579

原创 【Qt】QChart折线图

Qt绘图(Qt Charts)基于Qt的架构,其核心组件是QChartView和ViewModel。

2024-09-01 10:25:09 699

原创 ASCII、GB2312、Unicode和UTF-8

ANSI:文件的编码就是两个字节D1 CF,这正是严的 GB2312 编码,这也暗示 GB2312 是采用大头方式存储的。Unicode:编码是四个字节,其中FF FE表明是小头方式存储,真正的编码是4E 25。Unicode big endian:编码是四个字节,其中FE FF表明是大头方式存储。UTF-8:编码是六个字节,前三个字节EF BB BF表示这是UTF-8编码,后三个E4B8A5就是严的具体编码,它的存储顺序与编码顺序是一致的。

2024-09-01 10:03:55 1997

原创 OpenCV3 编程入门 毛星云 读书笔记

个人读书笔记,

2024-08-16 00:50:16 405

原创 【OpenCV】window 下 VS Code 配置OpenCV

在网上找了些资料,大致得出VS Code开发OpenCV的环境配置流程,如下安装VS Code安装MinGW安装CMake下载OpenCV配置OpenCV配置VS Code曾经在公司用过OpenCV,貌似并没有编译这一步,不明所以以下是GPT的回答:跨平台支持:CMake 是一个跨平台的构建系统,可以生成适用于不同操作系统(如 Windows、Linux 和 macOS)的项目文件。这使得 OpenCV 可以在各种平台上编译和使用¹⁴。自动化配置。

2024-08-11 22:56:20 2102 1

原创 【Git】撤销

回滚本地仓库,强制推送覆盖远程仓库( 切记回滚后不要马上git pull )已经修改了文件,还未进行 git add。即工作区的内容不想要了。,即暂存区的内容不想要了。顺序执行以下两个命令。

2024-08-08 23:19:32 346

原创 【Linux】Python 使用虚拟环境开发

在Linux使用Python开发项目, 建议使用虚拟环境。通过创建虚拟环境, 你可以将项目与工具隔分开, 避免与其他项目的工具存在版本冲突。创建虚拟环境需要使用virtualenv或venv模块。

2024-08-08 13:37:47 502

原创 【Git】VS Code 中文件右侧字母(A M U)含义

VS Code项目关联git后,常常会出现如下标识其中。

2024-08-07 23:44:06 720

原创 【Python】Numpy 常用方法

【代码】【Python】Numpy 常用方法。

2024-08-07 00:51:40 297

原创 【Git】git 不跟踪和gitignore区别

总的来说,不跟踪的文件是那些尚未被添加到 Git 中的文件,而 .gitignore 文件则是用于指定哪些文件和目录应该被 Git 忽略,从而避免它们被添加到暂存区和提交中。

2024-08-04 23:32:45 553

原创 【Linux】win 环境下进行 linux开发

开发项目, 建议使用虚拟环境。通过创建虚拟环境, 你可以将项目与工具隔分开, 避免与其他项目的工具存在版本冲突。PS:按 Ctrl + ’ (反撇号字符,即ESC下面的按键),会显示终端,即 Linux 命令行。想要win 环境下进行 linux开发,需要依赖于wsl。为了防止版本控制冲突,虚拟环境允许在没有管理权限的情况下安装和管理包。Ubuntu 18.04 LTS 自带 Python 3.6.x。框架的旧 web 项目,但你新的工程被要求使用。可能时没有更细软件源,使用如下命令更新即可。

2024-08-04 23:23:04 1309

原创 【Linux】wsl win安装Linux环境

打开开始菜单,在开始菜单中输入 启用或关闭 Windows 功能,在弹出的窗口中勾选 虚拟机平台 和 适用于 Linux 的 Windows 子系统,确定之后重启系统。Windows 下的所有文件都被挂载在了 /mnt 下,在Windows 终端中的任意目录下输入 wsl,即可进入 Linux 对应的路径。首次运行时,会让你先输入用户名,再输入密码(密码不可见,输完回车即可),不设置也可以,不过所有命令都是是在sudo状态下。,确定以后,弹出对话框要求重启计算机,重启即可。查看Ubuntu版本。

2024-08-04 22:42:38 719

原创 【VS Code】launch.json与tasks.json

只需要运行即可,为了把各种语言的不同开发流程抽象成同一套流程,于是有了编码(Code)— 构建(build)— 运行/调试(run/debug)— 测试 (test) — 打包(package) 等等,使用不同的编程语言可能有不同的开发流程,比如 C/C++ 就需要编译(广义编译,包括了链接)、运行、测试、打包等等流程,而。每个配置块代表一个调试配置,包含多个属性。这些任务可以是编译代码、运行测试、构建项目等自动化任务。本质上而言是一个文本编辑器,是众多插件赋予它特殊功能。launch(启动)

2024-08-04 18:47:24 1443

原创 【Git】git stash

Git的stash命令是一个非常实用的功能,它允许开发者临时保存工作目录和暂存区的更改,以便能够切换到其他分支或进行其他操作,而不会丢失当前的修改。,取出指定的队列,默认取出最新的队列,pop与apply的区别在于,pop在取出队列后会删除stash中的队列,apply则不会删除。,与git log功能类似,列出储藏列表,options 参数可以参考git log的参数。,删除某个储藏队列,默认删除最新的储藏队列。,使用某个储藏队列建立分支,同时删除该队列。指stash队列的名称,形式为。

2024-07-30 23:35:44 657

原创 2024.7.29早会

曾有一段时间整个人很丧,因为事情并没有做的足够好,我在不断反思为什么,在这期间陷入了恶性循环,不断的反问自己为什么,问着问着好像意识到好像什么都没干,时间都浪费了,那我就告诫自己为什么不把自己的弱点暴露呢?公开课上讲授了敏捷开发、XP极限编程、面向对象编程、建模、非暴力沟通、心理学(情商、认知失调)、DOD(Definition of Done)、ATDD等。那我是否全部吸收了呢,很坦然地讲,我是没有全部消化的,并且在消化的过程中遇到了诸多问题。希望大家都能成长的更快、更高,做事更快、更好。

2024-07-29 20:33:38 368

原创 【Qt】文字换行

它提供了现代文本布局引擎所期望的许多功能,包括 Unicode 兼容的渲染、换行和光标定位处理。它还可以生成和渲染与设备无关的布局,这对于所见即所得应用程序非常重要。该类具有相当低级别的 API,除非您打算为某些专用小部件实现自己的文本渲染,否则您可能不需要直接使用它。但此方法对于多语言文本不太友好,可以在超出文本框时添加省略符,方法如下。在Qt控件中经常遇到文字超出文本框,因此介绍几种换行方式。QTextLayout 可用于纯文本和富文本。

2024-07-23 16:00:49 1347

原创 【Git】变基(rebase)

首先要理解这个base,base也就是基础的意思,当我们从代码分支上获取代码的时候,我们就有了一个基础,也就是base,此后的修改我们都是在这个基础之上进行的,但是当我们需要提交修改的时候,遇到了别人的代码,变基这个操作就是在这个时候,我们不去合并别人的代码,而是直接把我们原先的基础变掉,变成以别人修改过后的新代码为基础,把我们的修改在这个新的基础之上重新进行。根据上面的原理可知,提交时需将本地的base修改为最新base,故此可以执行以下步骤。变基后,git时间线会呈一条直线,时间线变得非常干净。

2024-07-05 17:53:31 1816

空空如也

空空如也

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

TA关注的人

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