比较三维结构

Ste*_*ini 5 algorithm math 3d hash geometry

我需要通过查找和比较适当的几何散列来评估两组3d点是否相同(忽略平移和旋转).我做了一些关于几何散列技术的论文研究,并且我发现了一些算法,然而这些算法往往因"视觉要求"(例如2d到3d,遮挡,阴影等)而变得复杂.

而且,我很想知道,如果两个几何形状略有不同,那么散列也没有太大的不同.

有没有人知道一些符合我需要的算法,并且可以提供一些进一步研究的链接?

谢谢

ily*_* n. 0

我就是这样做的:

  1. 将组放置在质心处
  2. 计算惯性张量。这给你三个坐标轴。旋转给他们。[*]
  3. 按照给定的顺序(例如,从上到下、从左到右)以所需的精度写下点列表。
  4. 对结果数组应用您想要的任何算法。

要比较两个集合,除非您需要提前存储哈希结果,只需将您最喜欢的比较算法应用于步骤 3 的点集合。例如,这可以是计算两个集合之间的距离。

我不确定是否可以向您推荐第 4 步的算法,因为您的要求似乎是矛盾的。任何称为散列的东西通常都具有这样的特性:输入的微小变化会导致非常不同的输出。不管怎样,现在我已经把问题简化为一个数字数组,所以你应该能够解决问题。

[*] 如果两个或三个轴重合,请通过其他方式选择坐标,例如作为最长距离。但对于随机点来说,这种情况极为罕见。