- 博客(16)
- 收藏
- 关注
原创 画一个三角形
OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline)管理的。图形渲染管线可以被划分为两个主要部分:1、3D坐标转换为2D坐标2、2D坐标转变为实际的有颜色的像素2D坐标和像素的区别:2D坐标精确表示一个点在2D空间中的位置,而2D像素是这个点的近似值,2D像素受到你的屏幕/窗口分辨率的限制。图形渲染管线的每个阶段的抽象展示如下:在现代OpenGL中,我们定义至少一个和一个。
2025-10-06 23:25:58
775
原创 OpenGL创建窗口及渲染
在我们开始渲染之前还有一件重要的事情要做,我们必须告诉OpenGL渲染窗口的尺寸大小,即视口(Viewport),这样OpenGL才只能知道怎样根据窗口大小显示数据和坐标。//左下角位置 宽度 高度。
2025-09-30 18:50:16
844
原创 静态/动态库的制作
基于上一节阐述的源文件和头文件的查找,我们可以制作相应的库文件。首先,找到所需要的源文件,接着找到源文件需要包含的头文件,之后,制作成动态库即可。库文件生成的位置在执行命令的位置。只需将SHARED改成STATIC即可。在发布库的时候需要发布两部分数据,一部分是库文件,一部分是头文件。这个和制作可执行程序类似。区别是.cpp文件是文本格式的,库文件是二进制格式的。既然这样,那为什么要制作成库呢?
2025-09-27 14:45:02
495
原创 CMake基础(找头/源文件,输出指定路径)
以上命令是基于一个简单的tree,即源文件,头文件,cmakelists文件都在一个文件夹下,但是在实际的工程中,头文件和源文件以及cmake文件会处于不同文件夹里,所以现在我们来修改一下文件结构,使其更直观,将源文件放进src文件夹下,头文件放进include文件夹下,cmake文件放在src同级文件中,如下所示。除了 CMAKE_CURRENT_SOURCE_DIR 外,还可以使用宏 PROJECT_SOURCE_DIR,指向当前项目的根目录。加入这句指令后,程序就可以被顺利编译了。
2025-09-26 22:06:48
356
原创 解决头文件无法找到的问题
target_link_libraries(your_app PRIVATE ortools) # 自动扩展为 libortools.so 或 ortools.lib。:执行你的cpp文件,无论是否报错,此时在.vscode目录下会自动生成该文件。接下来,我将解释一下添加的这三句代码的含义,以便修改使用,若只需要查找.h文件仅添加第一句即可。2、告诉链接器在哪些目录中查找库文件(.so, .a, .dll, .lib)3、告诉链接器要链接的具体库文件,语法为:-l<library_name>
2025-08-16 15:49:10
410
原创 ros2 launch无法执行(含常用指令)
4、执行ros2 install/setup.bash命令之后再执行ros2 launch [...] [...]即可。1、 在CMakeLists.txt加入install命令并保存[ctrl+s]。三、在/src目录下执行colcon build命令会生成launch文件夹。问题:执行ros2 launch [包名] [py文件]时,报错。一、检查功能包结构,看launch文件夹是否在正确的位置上。2、在package.xml加入声明并保存[ctrl+s]。
2025-07-26 11:55:34
656
原创 解决主机和虚拟机之间无法复制粘贴的问题
基础软件包及其必要的依赖项。这个包提供了在 VMware 虚拟机中运行 Linux 所需的基本功能(如时间同步、基本设备驱动、关机信号等)。虚拟机无法实现复制粘贴且无法点击重新安装VMWare Tools。而被自动拉进来、现在系统不再需要的依赖包。提供了在图形桌面环境中运行所需的增强功能。软件包本身,同时移除那些当初因为安装。自动调整虚拟机屏幕分辨率以适应窗口大小。更好的图形性能(SVGA 驱动)。主机与虚拟机之间无缝的鼠标移动。拖放文件(在某些配置下)。
2025-07-20 12:41:59
712
原创 ros2找不到头文件
include "rclcpp/rclcpp.hpp"而不是#include "rclcpp/rclcpp/rclcpp.hpp"colcon build --symlink-install # 重新构建(这里是构建全部文件)find_package(std_msgs REQUIRED) # 声明std_msgs依赖。在添加完配置后,执行colcon build命令时找不到找不到头文件,报错。std_msgs # 确保包含std_msgs。找到CMakeLists.txt文件。3、保存文件,重新编译。
2025-07-20 02:01:43
340
原创 No executable found
② colcon build --symlink-install --cmake-force-configure --packages-select lisi # 强制重新配置。其原因是:在执行colcon build --packages-select lisi 命令时,在左侧文件框中没有生成lib目录。5、此时,执行source install/setup.bash和ros2 run lisi lisi_node会生成打印信息。1、找到CMakeLists.txt文件,检查增加的三条命令是否有问题。
2025-07-20 01:49:51
742
1
原创 五、增量平滑与地图构建
HouseHolder对于大量引进零元素是有用的,例如,消去一个向量中除第一个分量外的所有分量,然而,在许多计算中,必须有。消去顺序会决定贝叶斯树的层级:最后消去的变量会成为根团的成员,而较早消去的变量分布在树的底层。a.由于x₁没有依赖其他变量(无父节点)且不被其他变量依赖(无子节点),移除x₁后,剩余变量的联合分布仅保留与x₂、x₃等的相关性,无需调整其他变量的依赖关系。而是,通过扩展系统实现增量优化。由式子,我们可以直接理解为,用A将C消为0,D所在的位置保留着A的信息,将这个位置定义为S。
2025-04-29 22:25:23
1368
1
原创 四、消除顺序
对于向量x,要将其投影到指定y方向(y可以是[X 0 0 0 0],[X X 0 0 0]等)上,这里的限制条件是x和y长度相等,我们需要找到一个反射面(紫色平面),通过几何关系建立方程得到y的最终表达式。这里我理解的嵌套分割排序是:首先先确定分隔集C(相邻区域间的边界点如门廊、交叉路口、道路和绿化带等可以作为分隔集),由C分割开的A、B两区域互不相连,接着,在A、B区域分别再进行分割,直到分割到最小单元,然后从最小单元开始进行消除变量,最后消除分隔集中的变量。变量的度数指其在因子图中直接连接的边数。
2025-04-22 22:27:28
861
3
原创 三、稀疏结构
马尔科夫随机场(Markov Random Field,MRF)是一种无向图,其节点表示变量,边表示变量之间的依赖关系。MRF的核心特性是满足局部马尔科夫性(Local Markov Property):一个变量在给定其所有邻居节点的条件下,独立于图中的其他节点。这条性质可以让我们在马尔科夫随机场中轻松的识别出变量之间的独立性关系。其联合概率可表示为所有团的势函数乘积的归一化形式:其中Z是归一化常数(配分函数),ϕC是团C的势函数。
2025-04-21 21:54:50
1075
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅