在matlab中使用isosurface命令计算音量?

时间:2017-05-04 15:00:26

标签: matlab computational-geometry

如何在MATLAB中使用isosurface命令计算音量。我有一个网格数据xg,yg,zg所有尺寸都是90 x 90 x 90,我插入到xq,yq,zq中,尺寸为250 x 250 x 250 f的大小为(xg,yg,zg),每个网格具有一定的密度值。

G=interp3(xg,yg,zg,f,xq,yq,zq,'Cubic');
p1=patch(isosurface(xq,yq,zq,G,1.5)); 
isonormals(xq,yq,zq,G,p1);

现在我想知道这个isosurface命令在密度为1.5

时产生的物体的体积

1 个答案:

答案 0 :(得分:0)

所以,我有一个解决方案,如果您认为我的解决方案是错误的,那么请纠正我。

divide=100;
b=linspace(-1,1,divide+1);
a=linspace(-1,1,divide);
[x,y,z]=meshgrid(a,a,a); 
for i=1:length(x)
   for j=1:length(y)
      for k=1:length(z)
        G(i,j,k)=rand(1);
      end
   end
end
actvolume=2^3 
spacing=b(2)-b(1);
computedVolu=sum(G(:))*spacing^3 

isovalue=0.5;
p = patch(isosurface(x, y, z, G, isovalue));
isonormals(x,y,z,G, p);
set(p,'FaceColor','b','EdgeColor','none','FaceAlpha',1);