在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 不是网格生成。
答案 0 :(得分:6)
听起来你想创建一个finite element mesh,从一组定义一个区域边界的点开始,然后生成一个三角形网格,在该区域内创建更多的点。我不认为这个问题有一个“简单”的解决方案。
最接近的“内置”解决方案可能是Partial Differential Equation Toolbox,特别是Geometry Algorithms和INITMESH等REFINEMESH中的一些。
您提供给DistMesh的链接似乎是另一个很好的解决方案。您可以查看MathWorks File Exchange上的一些提交内容:
答案 1 :(得分:1)
答案 2 :(得分:1)
我认为用户创建的“gridfit”是我在单个表面上遇到的最好的,比griddata更好/更漂亮。
答案 3 :(得分:0)
如Delaunay Triangulation + Steiner Points中的网格生成?在MATLAB中有一个内置的Delaunay函数。
答案 4 :(得分:0)
如果表面是z = f(x,y)形式,则可以使用:
http://www.advancedmcode.org/how-to-plot-a-coloured-surface-from-3d-scatter.html
如果您的表面凹陷,请在同一网站上进行表面重建。