I'm trying to make a spherical shell using smaller spheres, I've reached to this point where these smaller spheres are widely spread, I want to reach at a better packing when no two smaller spheres overlap, can you all help me with this?
here is code for reference,
r = 1;
R = 10;
[x, y, z] = sphere(12);
figure;
Lim = [-R-r, R+r];
axes('NextPlot', 'add', 'XLim', Lim, 'YLim', Lim, 'ZLim', Lim);
axis equal;
view(3);
light;
for alpha = linspace(0, 2*pi,10)
for theta = linspace(0, pi, 13)
xs = sin(theta) * sin(alpha) * R;
ys = sin(theta) * cos(alpha) * R;
zs = cos(theta) * R;
surf(x * r + xs, y * r + ys, z * r + zs);
end
end

댓글 수: 3

ka
ka 2021년 6월 12일
Original question before removing content:
I'm trying to make a spherical shell using smaller spheres, I've reached to this point where these smaller spheres are widely spread, I want to reach at a better packing when no two smaller spheres overlap, can you all help me with this?
here is code for reference,
r = 1;
R = 10;
[x, y, z] = sphere(12);
figure;
Lim = [-R-r, R+r];
axes('NextPlot', 'add', 'XLim', Lim, 'YLim', Lim, 'ZLim', Lim);
axis equal;
view(3);
light;
for alpha = linspace(0, 2*pi,10)
for theta = linspace(0, pi, 13)
xs = sin(theta) * sin(alpha) * R;
ys = sin(theta) * cos(alpha) * R;
zs = cos(theta) * R;
surf(x * r + xs, y * r + ys, z * r + zs);
end
end
Rena Berman
Rena Berman 2021년 6월 29일
(Answers Dev) Restored edit

댓글을 달려면 로그인하십시오.

 채택된 답변

Adam Danz
Adam Danz 2021년 6월 13일

0 개 추천

This file exchange submission offers a method of uniform sampling along the surface of a sphere. After looking at the documentation to understand how to use the functions, all you need to do is specify a density based on the diameter of the smaller spheres. It will return the coordinates of the center points of each small circle.

댓글 수: 4

ka
ka 2021년 6월 14일
using this I get markers instead of spheres, and if I'm using points to plot spheres I get just a half ring
ka
ka 2021년 6월 14일
Thanks, Danz
Adam Danz
Adam Danz 2021년 6월 14일
From my answer, " [the function] will return the coordinates of the center points of each small circle. "
You still need to generate the spheres at those coordinates but now they will be uniformly distributed.
> if I'm using points to plot spheres I get just a half ring
I didn't understand this part. How are you generating the smaller spheres to begin with? I assume you're using sphere().
ka
ka 2021년 6월 14일
I got it.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

ka
2021년 6월 8일

댓글:

2021년 6월 29일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by