在Matlab上用四参数法QSGS随机生成的二维多孔介质,调用imshow函数就能显示,但QSGS生成的三维多孔介质不知道如何立体可视化。不需要切片图散点图曲面图等,效果参考底部附图。谢谢指教!
xLen = 50; yLen = 50;d14 = 0.1; d58 = d14/4; n = 0.30;cdd = 0.02;
numtotal_need = n*xLen*yLen;numsoild = 0; arrgrid = 0;
%% 1生成内核
for i = 1:xLen
for j = 1:yLen
if rand( )<cdd
numsoild = numsoild+1;arrgrid(i,j) = 1;
soild(numsoild,1) = i;soild(numsoild,2) = j;
end
end
end
Tnumsoild= numsoild;
%% 2从内核生长
while Tnumsoild<numtotal_need
for index_soild = 1:Tnumsoild
index_i = soild(index_soild,1); index_j = soild(index_soild,2);
if index_i<xLen
i = index_i+1; j = index_j;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1;arrgrid(i,j) = 1;
soild(numsoild,1) = i;soild(numsoild,2) = j;
end
end
if index_j<yLen
i = index_i; j = index_j+1;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i; soild(numsoild,2) = j;
end
end
if index_i>1
i = index_i-1;
j = index_j;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i;soild(numsoild,2) = j;
end
end
if index_j>1
i = index_i; j = index_j-1;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i; soild(numsoild,2) = j;
end
end
if index_i<xLen && index_j<yLen
i = index_i+1;j = index_j+1;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i;soild(numsoild,2) = j;
end
end
if index_i>1 && index_j<yLen
i = index_i-1; j = index_j+1;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i;soild(numsoild,2) = j;
end
end
if index_i>1 && index_j>1
i = index_i-1;j = index_j-1;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i; soild(numsoild,2) = j;
end
end
if index_i<xLen && index_j>1
i = index_i+1;j = index_j-1;
if (arrgrid(i,j) == 0 && rand( )<d14)
numsoild = numsoild+1; arrgrid(i,j) = 1;
soild(numsoild,1) = i;soild(numsoild,2) = j;
end
end
end
Tnumsoild=numsoild;
end
imshow(arrgrid);
以上为二维QSGS代码生成二维结构及其可视化图像,如改写成三维QSGS调用imshow函数会报错并不能显示三维数组。
想请教Matlab上有相关函数可以实现三维QSGS生成的结构可视化吗?或者有没有其他软件可以处理Matlab导出的结构文件进行可视化?有的话该如何具体操作?
问题补充:
针对的是三维QSGS生成的随机结构立体可视化方法,参考如图,可不局限于Matlab。随便检索的文件资源,自己都没有看过的话就不要浪费彼此时间了,十分谢谢!