填充由线段

时间:2016-12-29 14:32:07

标签: algorithm opengl mesh

我计算了网格和平面的交点。作为输出,我得到了一系列线段,渲染线条给出了交叉轮廓。现在我想填充轮廓所包围的区域。我面临的问题是线段没有任何特定的顺序。我正在使用OpenGL进行渲染。

1 个答案:

答案 0 :(得分:1)

您可以使用C ++库进行几何处理,例如VTK

假设您将闭合网格与平面相交,则应获得一条或多条闭合折线。您可以按照以下步骤获得所需内容:

  • 首先,您必须合并重叠的点,以创建连续的折线或一组多个闭合折线。根据您使用的公差,这将是错误的。但这是几何处理的一部分。
  • 其次,您必须将单独的折线(闭环)传递给像Delaunay三角测量(vtkDelaunay2D)这样的三角剖分算法。您还必须将折线的线段作为输出三角测量的约束传递。

问题在于,这并不适用于所有情况,因为在填充折线时很难知道哪一侧在内侧,哪一侧在外侧。但这是一个起点。

另一种更强大的方法可以是在计算与对象的交叉时使用平面的密集网格。在交叉过程中,您可以计算平面网格的顶点是在对象内部还是外部。通过这种方式,您可以跟踪要填充的区域。