
编程-C++编程及用到的相关库
C++的一些编程操作及一些相关的库Eigen、Openmesh……
朽米不通
这个作者很懒,什么都没留下…
展开
-
Openmesh根据距离分块,距离大的进行优化
根据距离分类的算法: 总的流程图:(伪代码) 输入:网格src 得到src每个点的距离 if(如果距离>0.25) { 归类为setA,进行优化求解; 优化求解后,已经和原网格很接近了,为了更高的精度再进行投影 } else { 归类为setB,直接进行投影; } 先在Nonrigidreg里面读取偏差值,然后到MeshForFEA中进行分类,并进行显示,看下对不对 在Registration中进行读取,然后分类,因为非刚体配准是将网格进行缩小变换后得到的结果,所以单独读取网格,不进行网格的缩原创 2022-11-17 17:28:07 · 303 阅读 · 0 评论 -
数据结构学习
参考书籍《数据结构案例教程(C/C++版)》 这里写目录标题第一章应用实践 第一章 应用实践 题目:利用所学C/C++语言知识,对一个整型数组a[n]编程实现一种排序算法,要求: (1)利用随机函数生成10万个随机数存放到数组中。 (2)分析算法时间复杂度。 (3)测试程序执行时间。 作业: 1.实现使用冒泡排序算法,实现如下所示 2.当数据规模为10万时,程序运行使用400s;当数据规模为1万时,程序运行使用4.78s;当数据规模为1000时,程序运行使用0.051s。可以看出时间复杂度为O(n²)。 3原创 2022-11-17 17:13:56 · 560 阅读 · 1 评论 -
c++的基本操作
c++的基本操作c++文件名的操作文件读写的操作 c++文件名的操作 从文件路径获取文件名字 void GetFilenameFromPath() { string path = "C:\\Users\\Administrator\\Desktop\\text\\data.22.txt"; path = "E:\\YZBdata\\DebugMesh_LittleMesh\\Lsrc3P.obj"; //1.获取不带路径的文件名 string::size_type iPos = path.find原创 2021-04-18 16:43:02 · 271 阅读 · 0 评论 -
OpenMesh-配置libigl+openmesh
目录配置libigl库使用libigl中的三方库使用embree使用imgui配置libigl编译遇到的一些错误错误1错误2错误3错误4配置openmesh库配置openmesh遇到的错误(1)因为openmesh版本造成的编译错误(2)没有添加dll的错误配置opencv配置Eigen库使用vcpkg 配置libigl库 相关参考: 如何脱离tutorial使用igllib LIBIGL的正确配置方法,vs配置(吐血整理) libigl中的函数直接添加相应的头文件就行了 //vc++-->包含目录原创 2020-11-02 08:37:09 · 1618 阅读 · 0 评论 -
OpenMesh-网格光顺的算法
网格光顺的算法openmesh例子程序的网格光顺算法 openmesh例子程序的网格光顺算法 算法参考: 几种网格平滑算法的实现 数学基础: 重心坐标 //给网格添加一个Point类型的cogs属性,用来保存每一个顶点的重心位置 //VPropHandleT字面上的理解就是顶点属性的句柄 OpenMesh::VPropHandleT<Mesh::Point> cogs; src_mesh_->add_property(cogs);//给网格中每个点添加一个属性cogs 实现上cogs并不原创 2020-10-30 00:00:48 · 1618 阅读 · 0 评论 -
OpenMesh-文件的读取
这里写目录标题openmesh的文件操作读文件读文件修改文件1-read_data()读文件修改文件2- mesh_scaling()写文件 openmesh的文件操作 //读文件 OpenMesh::IO::read_mesh(mesh, filename); //写文件 OpenMesh::IO::write_mesh(mesh, filename); 读文件 Mesh src_mesh; Mesh tar_mesh; std::string src_file; std::string tar_原创 2020-10-22 14:22:15 · 1214 阅读 · 0 评论 -
OpenMesh-图形学-旋转矩阵
旋转矩阵 旋转矩阵(Rotate Matrix)的性质分析 仿射变换及其变换矩阵的理解 正则项浅析 加入正则项是为了剔除异常数值的影响原创 2020-10-21 19:04:13 · 352 阅读 · 0 评论 -
Eigen-库的入门学习
稀疏矩阵的构建 typedef Eigen::Triplet<Scalar> Triplet_My; //构建稀疏矩阵mat_V0_ Eigen::SparseMatrix<double> mat_V0_; mat_V0_.resize(n_src_vertex_, 4 * n_src_vertex_); std::vector<Triplet_My> coeffv; coeffv.reserve(4 * n_src_vertex_); //Eigen::Tripl原创 2020-10-21 13:42:24 · 808 阅读 · 0 评论 -
OpenMesh-删除网格顶点
我正在考虑从一个大的网格中删除不需要的点,然后使用小的网格进行其他的操作 转自 OpenMesh 删除网格顶点 MyMesh mesh; vector<MyMesh::VertexHandle> delete_vh; //删除顶点的集合 if (!mesh.has_vertex_status()) mesh.request_vertex_status(); if (!mesh.has_face_status()) mesh.request_face_status(); if原创 2020-10-21 13:31:06 · 502 阅读 · 0 评论 -
OpenMesh-入门学习
openmesh元素的操作 运算符的操作 OpenMesh::Vec3d ps(xs0, ys0, zs0); OpenMesh::Vec3d pt(xt0, yt0, zt0); OpenMesh::Vec3d src_normal; double AC_dist = (pt - ps) | src_normal / src_normal.sqrnorm(); |:compute scalar product,数乘 /:component-wise division by with scalar,分量上原创 2020-10-21 13:09:49 · 3616 阅读 · 1 评论