使用Matlab操纵三维模型以创建指定的空隙

使用Matlab操纵三维模型以创建指定的空隙,matlab,pde,3d-modelling,3d-model,Matlab,Pde,3d Modelling,3d Model,我正在创建一个静态立方体水中气泡的基本模型,以测试理想平行板系统之间产生的电场。我目前正在使用matlab附带的PDEToolbox,因此我正在使用离散几何。我还尝试从CAD软件中导入立方体和气泡作为.stl文件,并将它们配对。我希望控制这些区块的位置/大小,例如本项目中使用的区块。我希望创建“泡泡”,因此只需更改所用球体的形状/大小/位置即可! 使用matlab是否可行?上述两种方法中的任何一种都是最好的,除非有更适用的方法更简单地做到这一点 我使用了您给出的示例来演示如何通过从立方体网格中删

我正在创建一个静态立方体水中气泡的基本模型,以测试理想平行板系统之间产生的电场。我目前正在使用matlab附带的PDEToolbox,因此我正在使用离散几何。我还尝试从CAD软件中导入立方体和气泡作为.stl文件,并将它们配对。我希望控制这些区块的位置/大小,例如本项目中使用的区块。我希望创建“泡泡”,因此只需更改所用球体的形状/大小/位置即可!
使用matlab是否可行?上述两种方法中的任何一种都是最好的,除非有更适用的方法更简单地做到这一点

我使用了您给出的示例来演示如何通过从立方体网格中删除网格点来创建气泡:

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

只考虑球面保持的x,y,z指数,建立一个“辅助器”函数 只有栅格点在半径r以上

bubble = @(x,y,z,r) vecnorm(bsxfun(@minus,Pcube',[x y z]')) > r;
现在我们可以根据上面的“气泡”函数,通过消除立方体中的网格点来创建“气泡”

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)

我使用了您给出的示例来演示如何通过从立方体网格中删除网格点来创建气泡:

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

只考虑球面保持的x,y,z指数,建立一个“辅助器”函数 只有栅格点在半径r以上

bubble = @(x,y,z,r) vecnorm(bsxfun(@minus,Pcube',[x y z]')) > r;
现在我们可以根据上面的“气泡”函数,通过消除立方体中的网格点来创建“气泡”

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)

您想如何“标记”空腔\气泡?作为网格中缺少的索引?作为零?如何“标记”空腔\气泡?作为网格中缺少的索引?作为零?我喜欢这个回答,这正是我的目标,有没有办法使提议的模型更球形,我知道这是吹毛求疵,因为模型已经很好了,但是当从这个网格生成PDEmodel时,生成的形状有点不一致。抱歉,我只是简单地提高了模型的分辨率,我认为这可能是上述原因的途径,因为“泡沫”的四维模型基本上解决了这个问题。我喜欢这个反应,这正是我的目标,有没有办法使提议的模型更球形,我知道这是吹毛求疵,因为制作的模型已经非常好了,但是当从这个网格生成PDEmodel时,制作的形状有点不一致。抱歉,我只是提高了模型的分辨率,我认为这可能是上述原因的途径,因为“泡沫”的四极模型基本上解决了这个问题。