使用 Matlab 操作 3D 模型以创建指定的空隙

Manipulating 3D models using Matlab to create specified Voids

我正在努力创建一个静态水立方体中气泡的基本模型,以测试理想的平行板系统之间产生的电场。我目前正在使用 matlab 附带的 PDEToolbox,因此我正在使用 DiscreteGeometries。我也一直在尝试从 CAD 软件导入立方体和气泡作为 .stl 文件并将它们配对。我希望控制 location/size 的方块,例如 example 中使用的方块。我想创建 'bubbles',所以只需更改所用球体的 shape/size/location 就可以了! 这完全可以使用 matlab 吗?除非有更适用的方法可以更简单地执行此操作,否则上述任何一种方法都是最好的。

我用你给出的例子展示了如何通过从立方体网格中消除网格点来创建气泡:

% create the "cube"
[xg, yg, zg] = meshgrid(-2:0.25:2);
Pcube = [xg(:) yg(:), zg(:)];

创建一个 "helper" 函数只考虑球体的 x,y,z 索引保持 只有半径 r

以上的网格点
bubble = @(x,y,z,r) vecnorm(bsxfun(@minus,Pcube',[x y z]')) > r;

现在我们可以根据上面的"bubble"函数通过消除立方体中的网格点来创建"bubbles"

Pcavitycube = Pcube( bubble(0.5, 0.8, 1.1, 0.25) & ...
                     bubble( 1 ,-0.2, 0.1, 0.4 ) & ...
                     bubble( -1,-0.8,  -1, 0.7 ) ...
                     ,:);

plot(alphaShape(Pcavitycube),'FaceAlpha',0.1)