【问题标题】:Mesh Generation in MATLABMATLAB 中的网格生成
【发布时间】:2009-11-06 08:45:49
【问题描述】:

MATLAB 中是否有任何子例程,它接收点列表,并返回一个很好的网格,我可以用它来展示给我的同事,比如这个?

实际上,我需要的只是一个简单的 2D 网格生成器,它接收一系列 X、Y 坐标(定义区域的边界),然后返回一个可以很好地网格化该区域的元素列表。 I can do the rest by using MATLAB command to interpolate the Z value.

编辑:我有兴趣使用 MATLAB 来生成上面的图。我有兴趣使用 MATLAB 库来获取元素列表,这样当我自己绘制这些元素时(不是在 MATLAB 本身中;而是在我自己的 C# 程序中),我可以获得这个网格表面。

PS:我知道有这个DistMesh,但我正在寻找更简单的东西——也许是直接在 MATLAB 中内置的东西。不,meshgrid不是网格生成。

【问题讨论】:

  • 您显示的数字可能具有误导性。如果我理解正确,您将从定义区域边界的一组点开始。然后你想生成一个三角形网格,在该区域创建更多点吗?
  • 是的,我想生成一个三角形网格,在该区域内创建更多点

标签: matlab mesh


【解决方案1】:

听起来您想创建一个finite element mesh,从定义区域边界的一组点开始,然后生成一个三角形网格,在该区域内创建更多点。我认为这个问题没有“简单”的解决方案。

最接近的“内置”解决方案可能是Partial Differential Equation Toolbox,特别是Geometry Algorithms 中的一些INITMESHREFINEMESH

您提供给DistMesh 的链接似乎是另一个不错的解决方案。 MathWorks File Exchange 上也有一些投稿,你可以看看:

【讨论】:

  • Persson 的纯 Matlab DistMesh 可能也很有趣:persson.berkeley.edu/software.html 用于重型网格,但是,我会将代码写入 csv 文件并对 Shewchuk 的三角形进行系统调用,但是:@ 987654333@
【解决方案2】:
  • 该图片看起来与griddata 文档中的图片一模一样。那里的示例看起来像您想要的。
  • SFTOOL 将轻松制作您展示的图片。
  • 薄板样条曲线,例如TPAPS,也应该可以完成这项工作。

【讨论】:

  • sftool 绝对不是我想要的,而 TPAPS 似乎更适用于获得一般的大而薄的表面而不是网格表面。
【解决方案3】:

我认为用户创建的“gridfit”是我遇到的最好的单一表面,比 griddata 更好/更漂亮。

【讨论】:

    【解决方案4】:

    像 Delaunay Triangulation + Steiner Points 那样生成网格? MATLAB中有一个内置的Delaunay函数。

    【讨论】:

      【解决方案5】:

      如果您的表面是 z=f(x,y) 形式,您可以使用:

      http://www.advancedmcode.org/how-to-plot-a-coloured-surface-from-3d-scatter.html

      如果您的表面是凹面,请在同一网站上查找表面重建。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-21
        • 1970-01-01
        • 1970-01-01
        • 2017-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-16
        相关资源
        最近更新 更多