离散几何
QUST-Learn3D
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
geometry4Sharp Ray-Mesh求交 判断点是否在几何体内部
摘要:该C#代码实现了一个STL模型点位置检测器,使用geometry3Sharp库处理3D网格数据。核心功能包括:1) 加载STL文件并验证模型封闭性;2) 采用改进的射线投射算法(包含5次随机方向测试)判断点是否在模型内部;3) 提供单点和批量检测功能。算法先进行快速边界框排除,再通过计算射线与三角形交点数确定位置,增强了结果的可靠性。适用于需要判断三维空间中点与STL模型位置关系的应用场景。原创 2026-01-05 10:38:15 · 217 阅读 · 0 评论 -
2D下的几何变换(C#实现,持续更新)
(1)已知2D下,新坐标系的原点、X轴方向向量、Y轴方向向量在原始坐标系下的表示,求原始坐标系中直线。(2)求直线与2D包围盒的交点,可能有0、1或2个交点;,在新坐标系下的直线方程;原创 2025-07-11 23:08:38 · 383 阅读 · 0 评论 -
LKH-3算法求解TSP问题基本原理与应用
LKH-3(Lin-Kernighan-Helsgaun)是求解旅行商问题(TSP)的最强启发式算法之一,由丹麦计算机科学家Keld Helsgaun在LKH-2基础上改进而来。它的核心思想是:通过智能的“局部破坏与修复”策略,逐步优化路径,最终找到接近最优的解。原创 2025-07-09 16:08:58 · 1459 阅读 · 0 评论 -
CGAL 求点到凸包最近点及对应法向
本文介绍了一个基于CGAL库的三维点集处理工具类(cgal_utils.h/cpp),主要功能包括:1) 将点集转换为三维凸包(Polyhedron或Surface_mesh格式);2) 计算各点到凸包的最近邻点及其对应法向量。该工具采用CGAL 5.6.2实现,支持点集格式转换(glm::dvec3与CGAL点互转)、凸包计算、AABB树加速最近邻查询,以及法向量计算等功能。原创 2025-06-06 10:14:20 · 296 阅读 · 0 评论 -
3D曲面上的TSP问题(二):ACO蚁群算法 + 2-opt搜索求解TSP问题
本文介绍了使用蚁群算法(ACO)结合2-opt局部搜索优化方法解决3D曲面上的旅行商问题(TSP)。文章首先通过OpenCV库中的cv::Mat类型距离矩阵distMap作为输入,初始化了ACO算法的参数,包括信息素矩阵、启发信息矩阵等。接着,详细描述了蚂蚁构建路径的过程,包括随机选择起点城市、计算转移概率、选择下一个城市等步骤。在每次迭代中,算法通过2-opt局部搜索对前20%的优秀蚂蚁路径进行优化,并更新信息素矩阵。最后,文章展示了如何动态调整算法参数以提高搜索效。原创 2025-05-15 17:21:09 · 471 阅读 · 0 评论 -
3D曲面上的TSP问题(一):曲面上点集距离求解
本文介绍了如何在3D曲面上计算两点之间的测地线距离,而非欧式距离。通过使用CGAL5.6.2和OpenCV4.11.0库,实现了从点集到凸包的计算,并进一步计算了测地线距离矩阵。代码中包含了点格式转换、凸包计算、最近点查询以及测地线距离计算等功能。具体实现中,首先将点集转换为CGAL格式,计算凸包,然后使用AABB树进行最近点查询,最后通过Surface_mesh_shortest_path计算测地线距离。代码还处理了可能出现的NaN或Inf值问题,确保计算的准确性原创 2025-05-15 17:11:37 · 430 阅读 · 0 评论 -
CGAL生成融合双椭球SurfaceMesh
使用CGAL构造融合双椭球曲面,输入为双椭球曲面的若干关键尺寸。原创 2025-02-20 14:12:44 · 246 阅读 · 0 评论 -
四边形网格处理——沿Edge遍历 & 矩形域顶点提取
四边形网格沿Edge遍历的大致思路,Edge首尾点分别为a,b,首先分别找到a,b邻接的所有面,取b邻接面的所有与b邻接的顶点,从这些顶点中再筛选出不属于a的邻接面的顶点,即沿Edge遍历的下一个顶点。原创 2025-02-07 15:04:46 · 1011 阅读 · 0 评论 -
快速提取规则立方体堆叠的外表面——基于VTK实现(二)
上文中实现的算法,可能存在非流形边的问题(两立方块仅存在一条边邻接)。(2)增加新的立方块,使新的立方块与这两立方块都是面邻接的关系;如果不考虑这个问题的话,实现(一)得内容就可以了。(1)识别出所有在两立方块仅存在一条边邻接的地方;(3)重复上述步骤,直到不存在非流形边。原创 2024-11-12 19:37:53 · 290 阅读 · 0 评论 -
快速提取规则立方体堆叠的外表面——基于VTK实现(一)
(1)在立方体堆叠方面,执行效率优于vtkCubeSource + vtkAppendPolyData方法;比如两个并排的立方体,一共6+6=12个面,但是中间有两个面是在内部,如何识别出这两个面,并把他们去掉呢?(2)在提取表面方面,效率优于vtkDataSetSurfaceFilter接口;后续可进一步通过使用vtkTriangleFilter将结果转为三角面片。问题:多个立方体面靠面的堆叠在一起,如何提取其外表面。1. 如何实现立方体堆叠;2. 如何清理重复顶点;3. 如何清除内部面;原创 2024-11-08 17:29:18 · 380 阅读 · 0 评论 -
VCGLIB中的FF邻接与VF邻接
【代码】VCGLIB中的FF邻接与VF邻接。原创 2024-10-25 20:03:39 · 264 阅读 · 0 评论
分享