比较两个3Dmesh

时间:2013-12-18 08:54:01

标签: algorithm math 3d

我需要找到一个算法,它有两个3D网格(一组点和三角形)检查是否可能找到一个矩阵4x4,它转换第二个中的第一个。 矩阵可以包含比例,旋转和平移,点的顺序和三角形的顺序不能相同。

有人已经找到关于这个问题的论文/文章/学术研究吗?

1 个答案:

答案 0 :(得分:1)

我想到了这个问题,我制定了这个算法: 比较2个网格O1和O2

  1. 将中心移动到原点,现在我们将T1应用于O1和T2以应用于O2(我更喜欢这种方式而不是只移动一个对象)
  2. 以距离d1和d2取得网格,F1和F2的更远点,并将O2的比例设置为s2 = d1 / d2,现在2个对象具有相同的大小
  3. 创建一个旋转(使用lookat算法),使F2与F1重合。
  4. 在O1中取一个点P1作为他距F1的距离df1定义的圆圈中的唯一点和距离原点fp的距离(它是一个圆圈,因为它是2个球体的交点)
  5. 在O2找到与原点和F2(现在与F1重合)的距离相同的点P2,如果此点不存在则则2个对象不同。
  6. 沿着原点-F2创建旋转,使P2与P1重合
  7. 如果对于O1中的每个点,在O2中有一个点在O2中具有相同的位置,并且对于O1中的每个三角形,在O2中的相同位置存在一个三角形

    然后2个网格是相同的。

    否则2个网格是不同的。