MATLAB:创建带开口的 Delaunay 三角剖分
我有一个具有 V
个顶点和 n
个开口的多边形。如何在 MATLAB 中使用 Delaunay 三角剖分为此多边形创建网格?
我知道我可以使用 delaunay 函数,但是我不知道如何输入开头。
I have a polygon with V
vertices and n
number of openings. How can I create a mesh using Delaunay triangulation for this polygon in MATLAB?
I know I can use the delaunay function, but I don't know how to input the opening.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
注意:较新版本的 MATLAB 建议使用
delaunayTriangulation
类 及其关联方法。下面的解决方案对于旧版本有效,并且应该很容易适应新的类。您可以使用函数 DelaunayTri 创建带有边的 Delaunay 三角剖分限制为包括多边形的边界和开口的边缘。这将创建一个包含开口的三角剖分,因此您可以使用函数 inOutStatus。
这是带有方孔的正方形的示例:
这是由上述代码创建的图:
Note: Newer versions of MATLAB recommend using the
delaunayTriangulation
class and its associated methods. The solution below is valid for older versions, and should be easy to adapt to the newer class.You can use the function DelaunayTri to create a Delaunay triangulation with the edges constrained to include the boundary of the polygon and the edges of the openings. This will create a triangulation that includes the openings, so you can then select only those triangles that are "inside" the bounded region (i.e. in the polygon but not in the openings) by using the function inOutStatus.
Here's an example of a square with a square hole:
And here's the plot created by the above code: