从球体包中创建体素并以布尔值

时间:2017-08-21 02:01:31

标签: voxel

我试图从我的matlab代码转换输出文件,该代码具有位置矢量和球体半径的输出。我打算从这些球体创建体素并以布尔形式存储,即1表示球体,0表示空白。请问您如何建议我这样做。这是输出的一个例子。

Pos (x) ,       Pos (y),        Pos (z)        Radius

    -0.34316     -0.18477     -0.00897   0.0900
    -0.18425     -0.20463      0.08040   0.020
    -0.46883     -0.49809      0.36954   0.020
     0.24727     -0.19437     -0.28274   0.0876
     0.39771      0.49293     -0.49469   0.0200
    -0.04368      0.26251     -0.07504   0.0200
    -0.34705      0.04092      0.37070   0.0200

这是我正在使用的matlab代码的片段。球体最初位于格子空间。谢谢

coords=zeros(N,3); % list of the 3D positions of all particles

overlap=(6*phi/(pi*N))^(1/3);

% create initial, evenly-spaced lattice
numcell=(ceil(N^(1/3)));

cellside=1/numcell;

hh=linspace(-.5+.5*cellside,.5-.5*cellside,numcell);

for ii=1:N

coords(ii,1)=hh(ceil(ii/ceil(N/numcell)));

coords(ii,2)=hh(floor(mod(ii,ceil(N/numcell))/numcell)+1);

coords(ii,3)=hh(mod(ii,numcell)+1);

end                               
scatter3(coords(:,1),coords(:,2),coords(:,3),'filled');   

0 个答案:

没有答案