matlab alpha-shape,Geometry from alphaShape

Geometry from alphaShape

Create a 3-D geometry using the MATLAB alphaShape function. First, create an alphaShape object of a block with a cylindrical hole. Then import the geometry into a PDE model from the alphaShape boundary.

Create a 2-D mesh grid.

[xg,yg] = meshgrid(-3:0.25:3);

xg = xg(:);

yg = yg(:);

Create a unit disk. Remove all the mesh grid points that fall inside the unit disk, and include the unit disk points.

t = (pi/24:pi/24:2*pi)';

x = cos(t);

y = sin(t);

circShp = alphaShape(x,y,2);

in = inShape(circShp,xg,yg);

xg = [xg(~in); cos(t)];

yg = [yg(~in); sin(t)];

Create 3-D copies of the remaining mesh grid points, with the z-coordinates ranging from 0 through 1. Combine the points into an alphaShape object.

zg = ones(numel(xg),1);

xg = repmat(xg,5,1);

yg = repmat(yg,5,1);

zg = zg*(0:.25:1);

zg = zg(:);

shp = alphaShape(xg,yg,zg);

Obtain a surface mesh of the alphaShape object.

[elements,nodes] = boundaryFacets(shp);

Put the data in the correct shape for geometryFromMesh.

nodes = nodes';

elements = elements';

Create a PDE model and import the surface mesh.

model = createpde();

geometryFromMesh(model,nodes,elements);

View the geometry and face numbers.

pdegplot(model,'FaceLabels','on','FaceAlpha',0.5)

986d3436ede85f2b0171b6ae00efa1ef.png

To use the geometry in an analysis, create a volume mesh.

generateMesh(model);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值