How can I plot around 1000 surfaces in 3D and with good speed?

3 vues (au cours des 30 derniers jours)
Igor Arkhandeev
Igor Arkhandeev le 1 Avr 2021
Modifié(e) : Matt J le 1 Avr 2021
Good day! I am plotting over 1000 surfaces with the command [x, y, z] = sphere; in one shape. Naturally, I end up with a very slow and heavy 3d render. How can I do it better?

Réponse acceptée

Matt J
Matt J le 1 Avr 2021
Modifié(e) : Matt J le 1 Avr 2021
You can keep the axes invisible until all surfaces have been added.
  3 commentaires
Igor Arkhandeev
Igor Arkhandeev le 1 Avr 2021
Modifié(e) : Igor Arkhandeev le 1 Avr 2021
I'm sorry, I never draw it. Can you rewrite my code follow your advice. Parameter a around 1000 - 1500.
[x, y, z] = sphere;
M = dlmread("Some_path.txt", '', 1, 0);
[a,~] = size(M);
for i = 1:a
surf(x + M(i,1), y + M(i,2), z + M(i,3));
end
Matt J
Matt J le 1 Avr 2021
Modifié(e) : Matt J le 1 Avr 2021
[x, y, z] = sphere;
M = dlmread("Some_path.txt", '', 1, 0);
a=size(M,1);
for i = 1:a
h{i}=surf(ax, x + M(i,1), y + M(i,2), z + M(i,3),'Visible','off');
end
set([h{:}],'Visible','on')

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by