【问题标题】:Sorting of vertices after intersection of 3d isosurface with plane3d 等值面与平面相交后的顶点排序
【发布时间】:2011-07-07 20:49:49
【问题描述】:

这是另一个几何问题:

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

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

提前致谢!

【问题讨论】:

  • 在没有代码的情况下,我建议math.stackexchange.com。哦,还有:答案是“是”
  • 您知道端点,因此您可以按顺序排列分段。只是将它们按顺时针顺序排列的问题吗?

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


【解决方案1】:

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

  • 对于每个点,投影到平面。这将为您提供 2d 中的一组点。
  • 通过平移到边界框的质心或中心,确保它们居中。
  • 对于每个二维点,运行 atan2 并获得一个角度。 atan2 只是将事物放在正确的象限中。
  • 按那个角度排序

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多