垂直拉伸二维面可以生成体。使用extrude函数可以将二维几何对象沿z轴进行拉伸,创建三维几何模型。extrude函数的语法格式为:
extrude(g,height) 将g描述的二维几何对象沿z轴拉伸height距离,创建一个三维的离散几何对象。如果height是包含多个元素的向量,则对应地分多层进行拉伸。
extrude(g,FaceID,height) 沿z轴拉伸FaceID指定的面。
h = extrude(___) 返回句柄对象。
【例14】下面首先用polyshape函数创建PDE模型的二维几何模型。[大谦MATLAB,dqmatlab点com]
code.matlab
>> t = pi/12:pi/12:2*pi;
>> pg = polyshape({[-0.9638 0.8717 0.8717 -0.9638], 0.4424*cos(t)-0.0082}, ...
{[0.5312 0.5312 -0.4589 -0.4589], 0.1859*sin(t)+0.0296});
>> tr = triangulation(pg);
>> model = createpde;
>> tns = tr.Points';
>> tes = tr.ConnectivityList';
>> [g,mesh]=geometryFromMesh(model,tns,tes);
然后用extrude函数将二维几何模型向上拉伸5个单位生成三维几何模型。
code.matlab
>> extrude(g,5)
ans =
DiscreteGeometry - 属性:
NumCells: 1
NumFaces: 8
NumEdges: 18
NumVertices: 12
Vertices: [12×3 double]
绘制三维几何模型。
code.matlab
>> pdegplot(g,'FaceLabels','on','FaceAlpha',0.5)
生成图4-11。
\[\]
图4-11 通过垂向拉伸二维几何模型创建三维几何模型
使用extrude函数可以连续进行垂向拉伸。下面首先创建二维几何模型。
code.matlab
>> R1=[3,4,-0.9638,0.8717,0.8717,-0.9638,0.5312,0.5312,-0.4589,-0.4589 ]';
>> E1=[4,-0.0082,0.0296,0.4424,0.1859]';
>> E1=[E1;zeros(length(R1)-length(E1),1)];
>> gd=[R1,E1];
>> sf='R1-E1';
>> ns=char('R1','E1');
>> ns=ns';
>> dl=decsg(gd,sf,ns);
>> model2=createpde;
>> gp=geometryFromEdges(model2,dl);
然后用extrude函数连续3次进行垂向拉伸。连续拉伸的距离用数组的形式给出。
code.matlab
>> h=extrude(gp,[1,0.5,1])
绘制连续拉伸后创建的三维几何模型。
code.matlab
>> pdegplot(h,'CellLabels','on','FaceAlpha',0.5)
生成图4-12。
\[\]
图4-12 对二维几何模型连续垂向拉伸