How to plot a sphere with given centre and radius?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
There is a matrix A=[1 2 3 4;2 3 4 5;5 6 7 8;8 9 10 11], First three columms represents the centre of a sphere (a,b,c), and the last columm represents the radius. How to plot those spheres in a same figure? Try not to use loops. Thanks.
2 Kommentare
Jan
am 28 Sep. 2017
Until "try not to use loops" the question sounds seriously. The solution is trivial with the sphere command and a loop. A solution without a loop is neither smart nor efficient.
Akzeptierte Antwort
Jan
am 28 Sep. 2017
Bearbeitet: Jan
am 28 Sep. 2017
Really without a loop? This is a bad idea for something, which is definitely a job for a loop.
figure
axes('NextPlot', 'Add');
CMap = parula(4);
A = [1 2 3 4; 2 3 4 5; 5 6 7 8; 8 9 10 11];
[X, Y, Z] = sphere;
for k = 1:4
XX = X * A(k, 4) + A(k, 1);
YY = Y * A(k, 4) + A(k, 2);
ZZ = Z * A(k, 4) + A(k, 3);
surface(XX, YY, ZZ, 'FaceAlpha', 0.5, 'FaceColor', CMap(k, :), ...
'EdgeColor', [0.4, 0.4, 0.4]);
end
axis tight
view(3)
No, I tried it without a loop but it hurts my eyes. Here is a loop version.
I made the spheres semi-transparent, because they overlap.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!