3

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

替代文字

实际上,我需要的只是一个简单的 2D 网格生成器,它接收一系列 X、Y 坐标(定义区域的边界),并返回一个可以很好地网格化该区域的元素列表。我可以通过使用 MATLAB 命令插入 Z 值来完成其余的工作。

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

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

4

5 回答 5

6

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

最接近的“内置”解决方案可能是偏微分方程工具箱,特别是一些几何算法,如INITMESHREFINEMESH

您提供给DistMesh的链接似乎是另一个很好的解决方案。您还可以查看 MathWorks 文件交换上的一些提交内容:

于 2009-11-06T16:02:00.820 回答
1
  • 该图片看起来与griddata文档中的图片一模一样。那里的例子看起来像你想要的。
  • SFTOOL将轻松制作您展示的图片。
  • 薄板样条,例如TPAPS,也应该完成这项工作。
于 2009-11-06T11:19:34.773 回答
1

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

于 2011-03-30T12:21:58.840 回答
0

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

于 2009-11-07T02:35:58.000 回答
0

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

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

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

于 2010-02-05T11:05:05.023 回答