1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| function blob2voxel(nom,a,n,g,m,alpha,u)
dz=g*(sqrt(3))/2;
M=m/2;
nprime=power(n,3);
c=a+u;
MT=ones(n,n,n);
Q=mat2vect(MT)
C=pos_blob(g,n,dz);
d=21;
V=zeros(fix(d),fix(d),fix(d));
F=pos_voxel1(d,u);
fprintf('%.0f\n',d);
dprime=power(d,3);
MIN=min(F(:,2));
for i=1:1:dprime
X=d+(MIN-F(i,2))/u;
Y=d+(MIN+F(i,1))/u;
Z=d+(MIN+F(i,3))/u;
for j=1:1:nprime
S=sqrt((F(i,1)-C(j,1))^2+(F(i,2)-C(j,2))^2+(F(i,3)-C(j,3))^2);
Sprime=S./a;
if real(S)<=c
h=8.63*sqrt(1-power(Sprime,2));
t=power((1-Sprime.^2),M);
b=abs((real(besseli(m,h))./real((besseli(m,alpha)))).*real(t));
V(X,Y,Z)= V(X,Y,Z)+ Q(j,1)*b;
else
V(X,Y,Z)=V(X,Y,Z);
end
end
end |