- 博客(11)
- 收藏
- 关注
原创 基于OBBTree的mesh碰撞计算
注:只是记录和分析,代码写的很垃圾,很低效、很不规范(大家可以指出错误,已经提速的地方)代码依赖Eigen库、ANNOY库(
2023-08-24 16:58:15
108
原创 C++提高笔记
static_cast(一般的转换,内置数据类型和具有继承关系的指针或者引用),dynami_cast(通常在基类和派生类之间转换使用,在转换前会进行安全检查),const_cast(主要针对const的转换,增加或减少变量的const性),reinterpret_cast(强制类型转换)template //告诉编译器,下面写的是模板函数(只对后面第一个函数或第一个类生效)try{ } catch(异常类型){ }//异常是根据异常类型匹配的。
2023-01-31 11:16:55
73
原创 C++基础笔记
多继承时访问父类的父类的成员时可能会出现歧义,解决方法虚继承或者指明作用域(虚继承的作用就是防止儿子继承我时,儿子存在多继承时,他的子类访问我的成员不明确的问题)如果一个类中有虚函数关键字时,在编译器给对象开辟空间时会默认创建vptr指针指向该类的虚函数表,虚函数会被编译器放在虚函数表中(子类和父类有各自的虚函数表)子类初始化对象的,在调用父类的构造器的时候,会将vptr指针会临时当作父类来处理,指向父类的虚函数表,在父类构造完后指回子类的虚函数表。重定义:是在两个不同的类中,一个是父类,一个是子类;
2023-01-15 20:34:54
71
原创 loop subdisivion算法
当边为内部边时(共享这个边的有两个三角面片),设内部边的两个端点为v0、v1,相对的两个顶点为v2、v3,则新增加的顶点位置为v = 3/8*(v0 + v1) + 1/8*(v2 + v3)。这个顶点有多个邻接面片时,new_v(顶点的新坐标)=(1−nβ)⋅org_v(这个点的原坐标)+β(v1+v2+v3+......),其中v1、v2、v3....是这个点的邻接顶点坐标。当边为边界边时(共享这个边的只有一个三角面片)新增顶点坐标new_v=1/2*(v1 + v2)。
2023-01-11 10:06:32
135
原创 计算机图形学:基础小问题
需要注意的是,2与1+1相同,3相当于2+1或1+2,6相当于3+3...如你所见,每次我们增加一个维度,只要简单地将头尾置为1,中间的操作都是“将上面的两个数字相加”。这就是贝塞尔曲线完整的描述。在这个函数中的Σ表示了这是一系列的加法(用Σ下面的变量,从...=开始,直到Σ上面的数字结束)。还有一个简单的办法可以弄清参数项怎么工作的:如果我们将。结合项”的和,在每个加号后面逐步的将。2、给定点,与法向画半径为r的圆。的值被限制在0和1之间,并且含有。最低的同理求最小值的点即可。
2022-11-24 10:07:31
449
3
原创 计算机图形学笔记(一)
通常,在构建和显示一个场景的过程中会使用几个不同的笛卡尔参照系。首先在各自的坐标系统中构造每一个对象的形状,比如树。这些坐标系称为建模坐标系(modeling coordinate),有时也称为局部坐标系(local coordinate)或主坐标系(master coordinate)。一旦指定了单个物体的形状,我们可将对象放到称为世界坐标系(world coordinate)的场景参照系的适当位置。
2022-09-05 17:26:31
223
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人