- 博客(23)
- 收藏
- 关注
原创 pcl转换
要使用 PCL(Point Cloud Library)将 PCD 文件转换为其他格式,如 .las 或 .ply,您需要利用 PCL 提供的工具和库。以下是一个简单的方法,描述如何使用 PCL 的命令行工具和程序进行转换。请注意,直接使用 PCL 工具可能不支持将 PCD 转换为 LAS 格式。对于这种情况,您可能需要首先将 PCD 转换为 PLY,然后使用其他工具(如 pdal)进行进一步的转换。如果您熟悉 C++ 编程,可以编写简单的程序使用 PCL 库来读取 PCD 文件并将其保存为其他格式。
2023-10-19 15:13:58
335
原创 ubuntu怎么源码安装cloudcompare
在Ubuntu上从源代码安装CloudCompare涉及到几个步骤,包括安装依赖、克隆源代码、编译以及安装。下面是详细的步骤:首先,打开终端并更新您的软件包列表:bashsudo apt updatesudo apt upgrade接下来,安装CloudCompare编译所需的依赖:bashsudo apt install git cmake g++ libqt5svg5-dev qt5-default qttools5-dev libqt5opengl5-dev qttools5-dev-tools q
2023-10-16 11:03:20
1569
1
原创 为什么更推荐new和delete
尽管new和delete提供了上述优点,但在某些情境下,如与C库交互或需要使用某些低级内存操作时,malloc和free仍然有其用途。但总体上,对于纯C++代码,new和delete更为推荐。在C++中,相较于malloc和free,new和delete提供了更高级、更安全的内存管理机制。
2023-08-21 19:47:18
202
1
原创 类里的静态成员的定义
这意味着,如果你更改了一个对象的静态成员的值,这会影响到所有其他对象,因为它们共享这个静态成员。这种行为使得静态成员非常适合于那些需要跟踪与类相关的全局状态或信息的场景,而不仅仅是与单个对象相关的状态或信息。当您为一个类定义了一个静态成员,那么这个成员不再随每个类的对象实例化一次,而是为整个类存在一个共享的实例。因此,不同的对象实例会访问和修改同一个静态成员的值。// 必须在类外部初始化静态成员。
2023-08-16 21:00:18
183
1
原创 static在c++的应用
在函数内的静态变量:在函数内部声明的静态变量在函数第一次调用时初始化,之后在连续的函数调用中保持其值不变。在类中的静态成员:静态成员属于类本身,而不是类的任何特定对象。总的来说,static 在 C++ 中提供了各种用途,从隐藏实现细节,到为类提供共享数据,再到在函数调用之间保持变量状态。在 C++ 中,关键字 static 在不同的上下文中具有不同的意义。静态成员函数:类中的静态成员函数可以在没有类的对象实例的情况下被调用,它只能访问类的静态成员。
2023-08-16 20:29:25
142
1
原创 想实现上下位机基于socket的通信,上下位机点击按钮后,给下位机发一个状态位,当接受到状态位时,运行GenerateTxtFile,应该怎么办
在C++中,使用socket通信通常需要包括<sys/socket.h>,<netinet/in.h>,<arpa/inet.h>等头文件。这些头文件包含了进行网络编程所需的数据类型和函数。你想实现基于socket的通信,首先你需要了解一些基本的socket编程概念。以下是一个简单的步骤和一个基本的示例。上位机(发送状态位的服务器)下位机(接收状态位的客户端)
2023-06-01 21:07:03
465
原创 c++中的堆和栈
当你需要在运行时创建变量或对象,而不是在编译时,或者需要创建的对象的生命周期超过了单个函数的调用,那么你就需要在堆上分配内存。在堆上创建的对象需要你显式地分配和释放内存,通常使用 new 和 delete (或对于数组,new[] 和 delete[])。函数内部创建的变量通常都在栈上。这些规则是 C++ 中内存管理的基础,但是在更复杂的代码中,可能会使用智能指针或其他技术来帮助管理内存,以防止内存泄漏和其他问题。注意:如果你忘记删除在堆上分配的内存,那么这些内存将不会被自动回收,这可能会导致内存泄漏。
2023-05-29 21:30:08
142
原创 指针变量例子解析
(Fusion_PMAEB_T*)p_data 是一个类型转换操作。因此,fusion_data 是一个指针,它指向与 p_data 相同的内存位置,但它被视为指向一个 Fusion_PMAEB_T 类型的对象。Fusion_PMAEB_T* fusion_data 声明了一个名为 fusion_data 的 Fusion_PMAEB_T 类型的指针。所以,这行代码的整体意思是:“将 p_data 所指向的内存视为 Fusion_PMAEB_T 类型,并让 fusion_data 指向它。
2023-05-29 21:20:07
75
原创 nano怎么保存并关闭
这样,你的文件就被保存并且 nano 编辑器也被关闭了。如果你在尝试保存文件时遇到任何权限问题,你可能需要使用 sudo 命令来获取足够的权限。例如,你可以使用命令 sudo nano [filename] 来打开文件进行编辑。
2023-05-29 20:57:40
9716
1
原创 怎么长期保持一个vlan
其中,eth0.X是VLAN接口的名称,X是VLAN ID,[ip_address]和[netmask]分别是VLAN接口的IP地址和子网掩码。保存并关闭文件后,重启网络服务以使更改生效。同样,eth0.X是VLAN接口的名称,X是VLAN ID,[ip_address]和[netmask]分别是VLAN接口的IP地址和子网掩码。保存并关闭文件后,重启网络服务以使更改生效。
2023-05-29 20:34:30
570
1
原创 怎样取消配置的vlan
例如,在基于 Red Hat 的系统中(如 CentOS 或 Fedora),你需要删除对应的 VLAN 配置文件,通常位于 /etc/sysconfig/network-scripts/ 目录下,文件名通常为 ifcfg-[VLAN_INTERFACE_NAME]。在这些命令中,[VLAN_INTERFACE_NAME] 是你想删除的 VLAN 接口的名称,比如 “eth0.10”。删除 VLAN 接口:你可以使用 ip 或 vconfig 命令删除 VLAN 接口。
2023-05-29 20:34:12
7362
1
原创 已知两个点和深度,利用向量画出四个点
前面的displacement = direction_perpendicular * depth计算出了平移向量,这个向量表示了如果我们从pt1或pt2出发,沿着垂直于车位边的方向走depth的长度,我们将会到达哪里。方向由这个向量所在的直线表示,长度则由向量的大小表示。在这里,这个向量表示的是如果你在车位线的一条边上的一点,向垂直于这条边的方向走depth的长度,你将会到达哪个点。我们知道车位是由四个点定义的,前面的pt1和pt2定义了车位的一条边,现在我们想找到定义另一条边的两个点。
2023-05-26 13:16:24
124
1
原创 配备vlan
sudo vconfig add enp44s0 105sudo ifconfig enp44s0.105 upsudo ip addr add 192.168.5.101/24 dev enp44s0.105
2023-05-26 11:34:20
101
1
原创 配备vlan
sudo vconfig add enp44s0 105sudo ifconfig enp44s0.105 upsudo ip addr add 192.168.5.101/24 dev enp44s0.105
2023-05-25 13:18:23
54
1
原创 zip的使用
假设x_values是 [1, 2, 3],y_values是 [4, 5, 6],那么list(zip(x_values, y_values))就会得到 [(1, 4), (2, 5), (3, 6)]。所以,world_points是一个包含很多元组的列表,其中每个元组都代表一个世界坐标系中的点,其中第一个元素是x坐标,第二个元素是y坐标。list函数则是把这个迭代器转换成列表。后续的代码中,world2image函数将这些世界坐标系中的点转换为图像坐标系中的点。
2023-05-24 15:58:46
93
1
原创 手动挂载sd卡
这里的 /dev/sdX 是SD卡的设备节点。你需要将 X 替换为SD卡对应的字母标识符,例如 /dev/sda、/dev/sdb 等。你可以使用 lsblk 命令查看系统中所有的块设备,确定SD卡的标识符。如果这些步骤不能成功挂载SD卡,可能存在其他问题,比如文件系统损坏或SD卡本身出现问题。如果你知道SD卡的文件系统类型,你可以使用 -t 选项指定文件系统类型。如果SD卡没有被自动挂载,你可以尝试手动挂载它。如果你不知道SD卡的文件系统类型,可以省略 -t 选项,让系统自动检测文件系统类型。
2023-05-22 13:35:38
1463
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人