MATLAB中的表面网格生成

时间:2014-01-05 10:20:49

标签: matlab mesh

我知道如何在MATLAB中使用PDEtool。但是现在我必须在表面上制作网格。

有谁知道我怎么能这样做?是否可以在MATLAB中使用?

2 个答案:

答案 0 :(得分:2)

如果要绘制曲面的网格图并知道曲面的{X,Y,Z},可以在MATLAB中使用 mesh 命令创建网格。 例如:

[X,Y] = meshgrid(-8:.5:8); 
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z,'EdgeColor','black')

如果您想出于其他原因使用网格数据,为什么不尝试DistMesh? 它简单地说是一个简单的MATLAB网格生成器。

答案 1 :(得分:0)

我有一个解决方案,但它是网格函数的组合,我不知道网格的质量有多好。此外,我需要顶点和面,所以我得到的与使用meshgrid时得到的有点不同。但是,它仍然是一个网格,不是吗?

  1. 创建曲面网格:[FV.faces,FV.vertices] = isosurface(VOLUME);
  2. 根据需要将refinepatch的面数增加四倍:FV = refinepatch(FV);
  3. 将面/顶点的数量减少到nFV = reducepatch(FV,n);
  4. 我还要看一下iso2mesh

    修改 来自iso2meshvol2surf我得到一个更规则的形状网格,偏差更小(我使用iso2mesh plotmesh来比较网格。