Questo sito utilizza i Cookie. Clicca su Accetto per consentirne l'utilizzo, altrimenti in Info trovi maggiori informazioni.

[Script] Plot di Circonferenze 3D con Matlab







In questo articolo un semplice script per il plot di circonferenze nello spazio 3D all'interno dei grafici di Matlab. Io utilizzo Matlab versione 2013a per Linux, ma questo script non dovrebbe avere problemi di utilizzo su altre versioni. 

Il file è stato chiamato plotCirclre3d.m e contiene il seguente codice:

function plotCircle3d(center,normal,radius,color,lineStyle,lineWidth)

%center: vettore [x y z] con le coordinate del centro
%normal: vettore normale al cerchio [0 0 0] = orientato come x y z.
%radius: raggio del cerchio
%color: colore della linea
%lineStyle: stringa che descrive il tipo di linea
%lineWidth:spessore linea in punti

theta=0:0.01:2*pi;
v=null(normal);
points=repmat(center,1,size(theta,2))+radius*(v(:,1)*cos(theta)+v(:,2)*sin(theta));
plot3(points(1,:),points(2,:),points(3,:),'color',color,'lineWidth',lineWidth,'lineStyle',lineStyle);

end

  La prima riga definisce il nome della funzione da richiamare, successivamente ci sono i commenti (righe che iniziano con il carattere '%') che vengono anche richiamati quando da console Matlab si digita

help plotCircle3d

 e che spiegano i parametri che la funzione richiede.

La funzione plotCircle3d riceve come parametri il centro della circonferenza, ovvero un vettore di coordinate x,y,z; un vettore normale (ovvero perpendicolare) al piano della circonferenza, un valore che determina il raggio, il colore della linea e lo stile nei formati accettati da Matlab. L'ultimo parametro è lo spessore indicato in punti.

I colori che Matlab accetta possono essere specificati in 3 modi:

  • Un vettore con 3 parametri che rappresentano le percentuali RGB (Red Green Blue) con numeri da 0 a 1.
  • Il nome breve (definito per i colori principali).
  • Il nome lungo (definito sempre per i colori principali).

Per esempio il verde può essere definito equivalentemente nei seguenti modi:

  • [0 1 0]
  • 'g'
  • 'green'

Per l'elenco completo vi rimando alla pagina relativa nella guida Matlab: ColorSpec.

Gli stili di linea che Matlab accetta sono specificati tramite una stringa che può essere:

  • '-' se si vuole una linea continua.
  • '--' se si vuole una linea tratteggiata.
  • ':' se si vuole una linea punteggiata.
  • '-.' se si vuole invece una linea non visibile.... Non chiedetemi perchè ;-)

 

La funzione plotCircle3d può essere richiamata per disegnare circonferenze nello spazio 3d, di seguito un esempio che potete digitare direttamente nella console di Matlab:

  1. Copiate il codice in un nuovo file Matlab e salvatelo come plotCircle3d.m (vi verrà proposto in automatico dopo averci incollato il codice, per via del nome della funzione).
  2. Andate nella console Matlab e digitate, dopo gli eventuali
    clear all
    close all
    clc

    per pulire il workspace, la console e chiudere tutte le figure aperte, il seguente codice per aprire un grafico 3d

    view(3)
  3. Digitate ora
    plotCircle3d([1 1 1], [0 0 0],5,'r','-',2)
  4. e poi
    grid on

    per visualizzare la griglia.

Vedrete visualizzata la seguente figura:

grafico Esempio Script plotCircle3d per disegnare circonferenze nello spazio 3d




Se ti è piaciuto questo articolo condividilo come preferisci, oppure lascia un commento!!

Parliamo di come si può essere sicuri che i rimedi si acquista on-line sono sicuri. Senza dubbio, uno dei luoghi emozionante, dove le persone possono acquistare farmaci è Internet. Ci sono farmaci variante per ogni malattie. Kamagra è un farmaco prescritto per il trattamento di diverse denunce. Cosa ne pensi "http://journal-info.net/buy/levitra-online.html "? Dove è possibile avere informazioni dettagliate su "buy levitra online "? Le questioni, come "buy levitra ", si riferiscono a vari tipi di problemi medici. Vivere con la disfunzione erettile può essere un vero problema. Ci sono farmaci variante per risolvere la disfunzione sessuale maschile. Il farmaco è per voi. Mai dare ad altre persone, anche se i loro reclami siano uguali ai suoi.