在3D空间中给定三角形网络。旋转并翻译所有点以生成新的网格b。
仅通过其顶点和面孔来确定A和B的平等?
网格的拓扑并不重要,我只关心几何平等,即使改变了三角剖分,A和B也应相等。这是诸如三角形网格的变换内变量问题之类的东西,仅考虑翻译和旋转。
仅假设三角形面孔。
-
比较三角形的数量
如果不匹配返回
false
。 -
按其大小进行三角形
如果两个网格之间的尺寸和顺序不匹配。
-
在形状中查找独特的三角形
因此,是最大或最小的区域,边缘长度或其他。如果不存在,那么您需要其他独特的功能,例如2个最遥远的点等...如果没有,则您需要 ransac 为此。
对齐两个网格,因此匹配的三角形(或特征点(在两个网格中都具有相同的位置。
-
比较匹配的顶点
因此,在网格b中找到与每个顶点的最接下顶点a网格a,如果它们的距离越过某个阈值返回
false
-
返回
true
如果网格没有 3 的不同功能对此测试或使用 RANSAC 的组合。
还有#3 的替代方案,例如找到质心,最接近和最接近的点,并将它们用作基础向量而不是三角形。这需要单个顶点或关闭的顶点组为最小和最大。如果不像Cube Icosahedron这样的对称网格中不存在,那么您是不幸的。
您可以使用网格中的其他功能(例如颜色,纹理坐标...
(来增强它。[EDIT1]只是对部分方法的疯狂思考,而无需Aligninig
计算平均点
C
计算以
为中心的最大铭文球C
仅距离
C
到最接近的距离计算以
为中心的最小的绝非球体C
从
C
到最远的距离比较形状之间的半径
如果不是相等的形状,则确定不完全相同。如果相等,则必须检查上面的方法。
完成 @spektre的答案,如果两个网格不完全相同,那至少有一对节点或边缘,这些节点或边缘并不能完全重叠,您可以使用hausdorff量化两个网格之间的"差异"。
3D形状相似性(Heung-Yeung Shum,Martial Hebert,katsushi ikeuchi(在两个三角形网格之间计算出相似性得分,通过比较半符号球体,以比较已变形,以近似于原来网眼。
在这种情况下,网格有望相同(由于转换而导致一些小误差(,因此可以构建受论文启发的算法如下:
- 将每个网格
A
的顶点(B
(的顶点分组为它们的数量。 - 从网格
A
中选择一个顶点V_A
,从网格B
中选择一个V_Bi
,均为邻居数量相同。 - 顶点及其
N
邻居V_n1
...V_nN
形成了N
三角形的三角形迷。构造N
转换将顶点V_Bi
到V_A
和每个可能的风扇(从其他邻居V_Bn1
,V_Bn2
,...,V_BnN
开始(到V_An1
...V_AnN
。 - 在
A
中找到从B
的每个顶点到最接近的顶点的距离总和的最小值,对于每个N
,每个顶点V_Bi
都会转换。
如果发现了接近零的总和,则转换的网格B
的顶点与A
的顶点一致,可以构建它们之间的映射,您可以根据需要进行进一步的拓扑,边缘存在或方向检查。<<<<<<<<<<<<<<<<<</p>