【问题标题】:How to create equilateral(regular) triangles inside a region to get a 2d mesh?如何在区域内创建等边(规则)三角形以获得二维网格?
【发布时间】:2020-03-17 15:42:16
【问题描述】:

在我的程序中,我想实现以下功能:

  1. 用户使用鼠标绘制一条闭合曲线,这条曲线实际上是一组点
  2. 给定用户绘制的闭合曲线,该程序将在该曲线内创建等边三角形以获得二维网格。

就像这个image,第一个是用户绘制的闭合曲线。然后我想在这条曲线内创建等边三角形(第二个),并移动那些不在这些创建的三角形顶点中的点以获得二维网格(第三个)。

我查找了具有很多网格生成算法的 CGAL,但我找不到一种方法来满足我的需求。那么有谁知道我如何实现我的目标。

【问题讨论】:

    标签: c++ math opengl graphics cgal


    【解决方案1】:

    如果您的曲线是闭合的,那么您可以使用2D meshing package。一个简单的例子是here。 这是我使用嵌入到Ipe 软件中的CGAL 生成的示例。

    【讨论】:

    • 我尝试了这个你给出的例子,但是我遇到了两个问题,一个是我不能像你的那样有规律,它也有一些irregular triangle,另一个问题是我得到了一些意外的三角形结果,例如this。你能告诉我你是如何使用 cgal 得到结果的吗?
    • 我猜你也在显示域外的三角形。尝试使用函数is_in_domain() 过滤这些面孔。然后,如果不够规则,您仍然可以尝试平滑网格。请参阅this 示例。
    猜你喜欢
    • 2012-06-11
    • 2012-11-02
    • 1970-01-01
    • 2021-11-19
    • 2020-08-15
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多