Per ottenere un effetto di "animazione" puoi modificare progressivamente, all'interno di un loop il punti di vista del grafico.
Il settaggio del "punto di vista" viene effettuato tramite la funzione "
view": mantenendo fisso il valore dell'elevazione (secondo parametro) si ottiene una rotazione attorno all'asse verticale.
E' possibile, a seconda dell'effetto di animazione che si vuole ottenere, modificare uno solo dei due parametri (Az o El) o anche tutti e due.
Il passo del loop consente di regolare la velocità di rotazione.
La chiamata alla funzione "
pause" all'interno del loop consente di regolare la velocità di aggiornamento del grafico.
Settando il limite superiore del loop ad un multiplo di 360, si ottengono più rotazioni.
Nel corso della rotazione MatLab "aggiusta " automaticamente i "tick" degli assi ed il parametro "CameraViewAngle", entrambe queste regolazioni degradano (almeno secondo il mio punto di vista) l'effetto di animazione.
Per evitare questi aggiustamenti automatici puoi settare manualmente tali parametri per mezzo della funzione "
set".
Di seguito uno script di esempio che illustra quanto suggerito.
% Creazione dei punti di esempio
pt=randi([100,200],10,3);
% Plot dei punti di esempio
plot3(pt(:,1),pt(:,2),pt(:,3),'o','markerfacecolor','r','markeredgecolor','r')
grid on
box
daspect([1 1 1])
% Identificazione dei limiti degli assi
x_lim=get(gca,'xlim')
y_lim=get(gca,'ylim')
z_lim=get(gca,'zlim')
% Settaggio manuale dei "tick" degli assi
set(gca,'xtick',[x_lim(1):25:x_lim(2)])
set(gca,'ytick',[y_lim(1):25:y_lim(2)])
set(gca,'ztick',[z_lim(1):25:z_lim(2)])
% Modifica del valore di CameraViewAngle: più è grando il valore, più
% l'oggetto rappresentato sembra "lontano" questo evita che MatLab aggiusti
% automaticamente le dimensinoi del sistem di assi cartesiani
set(gca,'CameraViewAngle',[15])
% Loop per la rotazione del grafico
for i=1:5:660
view(i,33)
pause(.3)
end
Hope this helps.