三维等值面与平面交点后的顶点排序

时间:2011-07-07 20:49:49

标签: c++ math polygon computational-geometry marching-cubes

这是另一个几何问题:

我使用行进立方体算法创建了点云的三维三角形等值面。然后我将这个等值面与一个平面相交,得到许多代表交点轮廓线的线段。

是否有可能顺时针对这些线段的顶点进行排序,以便我可以将它们绘制为封闭路径并进行填充?

提前致谢!

1 个答案:

答案 0 :(得分:0)

这取决于你的等值面是多么复杂,但我能想到的最简单的事情可能是:

  • 对于每个点,投射到飞机上。这将在2d给你一组积分。
  • 确保它们居中,通过平移到边界框的质心或中心。
  • 对于每个2d点,运行atan2并获得一个角度。 atan2只是将事物放在正确的象限中。
  • 按该角度排序

如果你的等值面/平面在质心周围的角度单调增加,那么这将正常工作。如果没有,那么你可能需要找到平面中每个点的2个最近邻居,并希望这是一个简单的循环。从表面上看,简单的循环理念可能更简单,因为您不需要投影,也不需要计算角度 - 只需在3d中完成所有操作。