- 博客(25)
- 收藏
- 关注
原创 三维变换矩阵实战——三维点云的旋转、缩放、镜像、错切、平移、正交投影
旋转矩阵:右边矩阵是点云的原始坐标,左边的是旋转矩阵可视化:绕x轴旋转90度。
2023-11-06 15:53:37
4540
1
原创 线性代数——向量运算可视化(python实现)
研究3D图形学处理,很多地方需要用到的线性代数的知识,将线性代数结合3D可视化编程,能够加深对线性代数应用场景的理解。
2023-10-31 21:06:25
619
原创 PCL点云滤波算法
在点的属性上设置范围,对点进行滤波,保留该属性上范围内或范围外的点(1)指定一个维度以及该维度下的值域(2)遍历点云中每一个点,判断该点在指定维度下的值是否存在值域内,不存在则删除(3)遍历结束,剩下没被删除的点就是滤波后的点使用场景:在知道噪声点某一维度上的值时,可以进行去噪。
2023-10-22 22:04:44
202
1
原创 继承和动态内存分配
基类father中,包含了使用new时需要的特殊方法:析构函数、复制构造符函数和重载赋值运算符。现在从基类father中派生son类,son类不使用new。son中不需要显式析构函数,复制构造函数和赋值运算符,为什么呢?析构函数:son中没有定义析构函数,编译器会定义一个不执行任何操作的默认析构函数。而派生类son的默认析构函数会调用基类father的析构函数,因为派生类中新增的成员不需要执行任何特殊操作,因此默认析构函数就足够了。
2023-08-17 21:46:22
63
2
原创 C++实现一个简单的String类
头文件声明类string1.h#pragma once#include<iostream>using namespace std;class String{private: char* str; int len; static int num_strings;public: static const int CINLIM = 80;public: //构造和析构 String(const char*);// 构造函数 String();//默认构造函数
2023-08-16 16:25:27
59
2
原创 友元的使用
这里house类将dog类中的成员函数visit()作为友元,需要在house类内进行声明,所以需要在house类之前先声明dog类及其成员,不然会报错。
2023-08-12 17:07:14
40
1
原创 定位new运算符
这里pd4和pd2的地址相同,pd4的值覆盖了pd2的值,为了能继续buff中创建数组,且不覆盖之前的值,需要计算一个偏移量。通过定位new运算符将p2放在buff数组中,p2和buff的地址都是00007FF66D9BF440。在pd2的基础之上,通过定位new运算符将数组pd3放在buff中,pd4会覆盖在原来pd1的内存位置。作用:定位new运算符让我们在动态申请内存时,可以指定要使用的内存位置。
2023-08-05 21:22:27
84
2
原创 静态持续变量链接性
C++中,静态持续变量有三种链接性1.外部链接性:函数外声明,全部文件可用2.内部链接性:用static在函数外声明,作用域为当前文件3.无链接性:用static在代码块中声明,作用域在代码块中。
2023-08-03 17:22:58
53
原创 三维网格模型和点云的分割结果可视化
在三维模型和点云分割的实验中,通常都需要对分割结果进行可视化,不同的区域用不同的颜色,每个点的颜色要根据分割结果来确定。这里用一个三维网格模型作为例子在实现这一过程。
2023-08-02 23:39:16
877
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人