用孔绘制不规则xy数据的轮廓

时间:2018-08-03 14:04:39

标签: matlab contour paraview

最近两天我一直困扰于此问题,到目前为止还没有找到解决方案。我有以下格式的数据:

x1, y1, val1
..  ..  ..
..  ..  ..
xn, yn, valn

val1, ..., valn是我在如下所示的几何图形上模拟后获得的场量。

enter image description here

只有灰色区域是感兴趣的区域,而蓝色/深蓝色的区域不是(包括内部的倒L形蓝色区域)。因此,数据的x和y坐标是分散的/不规则的,并且由于我的原始几何形状中的孔而具有较大的间隙。有没有办法获取此数据的填充轮廓图?在Matlab中尝试以下操作可使我对原始多边形外部的三角形进行三角剖分。另外,它填补了我不想要的空白。

x = data(:,1);
y = data(:,2);
z = data(:,3);

%
dt = delaunayTriangulation(x,y) ;
tri = dt.ConnectivityList ;
xi = dt.Points(:,1) ;
yi = dt.Points(:,2) ;
F = scatteredInterpolant(x,y,z);
zI = F(xi,yi) ;
trisurf(tri,xi,yi,zI) 

另一种可能性是将数据导入ParaView中,并以Table-to-Points--> Delaunay Triangulation 2D的形式进行过滤。但是,这与Matlab存在相同的问题。不能通过使用一些数学表达式来分析孔以NaN掩盖不需要的内插区域。

1 个答案:

答案 0 :(得分:0)

Paraview似乎为此使用了solution。尽管我没有使用有限元来求解pde,但是我可以在GMsh内为带孔的几何体生成有限元网格。然后,在ParaView中同时导入CSV数据文件和GMsh网格文件(.vtk格式)。使用数据集过滤器对现场数据进行重新采样,并以Delaunay2D的结果作为输入,这样只能在原始几何图形上获得轮廓。