【问题标题】:Constrained triangulation code约束三角测量代码
【发布时间】:2012-07-24 23:55:20
【问题描述】:

我正在寻找 matlab 中的约束三角剖分代码,类似于 Shewchuk 的 triangle 软件。 matlab的delaunay主要缺少的是约束,比如对网格最小角度的约束等。

我听说有一个使用 mex 将 Shewchuk 的代码移植到 matlab 的端口,但我找不到。

【问题讨论】:

    标签: matlab triangulation


    【解决方案1】:

    这是为 MATLAB 编写的 GUI,它使用对 Shewchuk 的 Triangle.c 的外部调用:

    http://marineemlab.ucsd.edu/~kkey/software/triangle/index.php

    也许你可以使用它。

    【讨论】:

      【解决方案2】:

      我推荐 Matlab 的 DelaunayTri(...,C) 其中 C 是 numEdge x 2 矩阵中的约束边。边用 2 个索引指定到三角测量点的集合中。

      输出是具有 DelaunayTri 类的对象。

      http://www.mathworks.com.au/help/techdoc/ref/delaunaytri.html

      要过滤掉约束内部或外部的三角形,请使用 "inOutStatus()"

      例如

      dt = DelaunayTri(double(Points), double(Constraints));
      outside = ~ dt.inOutStatus();
      %filter using TriRep to create a new set of triangles, "tr"
      tr = TriRep(dt(outside, :), dt.X);
      

      【讨论】:

      • 我不确定我是否理解如何像我在问题中提到的那样做出更一般的约束,关于角度的最小尺寸等......
      • 对于带有边缘约束的大输入,这仍然比三角形慢得多。甚至写入文件、在命令行上运行 Triangle 并从文件中读取结果也快了几个数量级。
      猜你喜欢
      • 2014-05-16
      • 2019-11-02
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 2020-05-12
      相关资源
      最近更新 更多