采用Matlab等值面的光滑放样表面

时间:2016-12-14 15:21:04

标签: matlab plot 3d

我试图在Matlab中从一组2D横截面生成一个3D结构 - 就我而言,它是一个我已经优化结构的机翼。对于简单示例,我有两个不相同的横截面。他们可以看到here

现在我想在表面之间做一个放样,并在两端盖上帽子,我分别用isosurface和isocaps做。由于我不想要模糊的轮廓,我包含一个阈值

threshold=0.6;

% loft
fv=isosurface(xq,yq,zq,vq,threshold);

%lids
fvc=isocaps(xq,yq,zq,vq,threshold);
fvc.faces = fvc.faces + size(fv.vertices,1); %re-numbering

%structure with nodes and elements of surface+lids
fall.faces = [fv.faces; fvc.faces];
fall.vertices = [fv.vertices; fvc.vertices];   

现在,如果我调用补丁来绘制它:pall=patch(fall),它看起来像this

有谁能告诉我为什么外表面不光滑?更好的是,任何人都可以提供解决方案吗? 仅仅是横截面之间的间距太大了吗?

编辑:只是为了澄清。不需要3d图中间的边缘。我不知道为什么会这样。由于这是一个机翼,它应该简单地连接2d横截面。该区域没有数据,仅在z = 2.5m和z = 7.5m处,如横截面图所示。

0 个答案:

没有答案