Pagina 1 di 1

Costruire cilindro in Matlab

Inviato: 27 gen 2011, 10:41
da Zeitung
Buongiorno,

vorrei sapere se in Matlab ( che premetto conosco poco ) è possibile realizzare il seguente grafico:

- fisso un centro in (0,0) ed un raggio r;
- prendo n punti a distanza r dal centro con "passo" 45° (punti della circonferenza) ;
- questi "n" punti sono distribuiti su di un piano orizzontale; devo ripetere questa cosa su più piani orizzontali a diverse altezze.

In sostanza, la figura dovrebbe essere simile ad un cilindro fatto di un certo numero di piani orizzontali su cui giacciono "n" punti di una circonferenza presa con passo 45°.

Ad ogni punto associo un colore che lo lega ad un certo valore numerico.

Spero di essere stato sufficientemente chiaro, il problema è che mi è stato chiesto di risolvere la faccenda con Matlab ma non ho grande esperienza con questo software e non saprei proprio da dove cominciare.

Ringrazio in anticio per eventuali risposte.

EDIT: chiaramente con passo 45° gli "n" punti sono 8 :D

Re: Costruire cilindro in Matlab

Inviato: 28 gen 2011, 2:48
da Berello
Ciao!

Avrei voluto rispondere prima, ma ho avuto la giornata piena e ora, poco prima di cenare, ti scrivo un suggerimento per iniziare.

Non ho Matlab sotto mano per provare, però se ricordo bene, il comando essenziale è questo:

Codice: Seleziona tutto

plot3(x, y, z, '+', 'Color', [rosso, verde, blu]);

Serve a disegnare un punto in un grafico tridimensionale.
Definizioni:
  • x, y, z sono le coordinate del punto nello spazio;
  • '+' rappresenta il tipo di punto da disegnare (+ disegna un più, altri mi pare che sono . per un punto, o per un cerchietto, x per una crocetta);
  • 'Color' indica che il parametro successivo è un colore (da assegnare ai punti/crocette);
  • [rosso, verde, blu] è un vettore di 3 elementi, più precisamente sono 3 numeri interi compresi tra 0 e 255.
Per i dettagli del comando (e per scoprire se ho detto frottole), scrivi in Matlab questo:

Codice: Seleziona tutto

doc plot3

Ti darà una pagina di istruzioni riguardanti il comando plot3! Tantissimi dettagli, ti conviene spulciarti bene la pagina! ;-)

Lì trovi anche gli altri simboli da utilizzare (oltre +, o, ., x che ti ho segnalato) e altri parametri.

Ovviamente per la questione "cilindro" puoi cavartela da solo con un po' di trigonometria, assegnando ai punti le coordinate giuste affinché si formi un cilindro.

Altra nota: prima di chiamare la funzione plot3, dovrai aprire una finestra in cui fare il "plot" (cioè dove disegnare il grafico).
Non ricordo bene quali comandi esistono per questo, ma mi pare che uno sia "figure" (ne esistono diversi a seconda delle esigenze).
La finestra ovviamente devi aprirla una sola volta all'inizio e non prima di disegnare ogni punto, altrimenti probabilmente cancelleresti tutto e apparirebbe un solo punto.

Quindi qualcosa del genere:

Codice: Seleziona tutto

figure('Name', 'Grafico del cilindro', NumberTitle', 'off');
plot3(0, 0, 0, '+', 'Color', [255, 0, 0]);
plot3(0, 0, 10, 'o', 'Color', [0, 255, 0]);

Questo dovrebbe disegnare un più rosso e un pallino verde.
Non ho provato il codice perché, come ti ho detto, non ho Matlab sotto mano. E non so se puoi fidarti di quello che ho detto, perché non apro Matlab da 11 mesi, mentre 13 mesi fa l'ho usato per la prima volta! :mrgreen:

Però puoi fidarti di:

Codice: Seleziona tutto

doc plot3

Forse lì troverai anche qualche esempio più corretto!

Buon lavoro! ;-)

Re: Costruire cilindro in Matlab

Inviato: 28 gen 2011, 12:44
da Berello
Ciao!

Mi correggo sulla storia dei colori: non si tratta di numeri interi compresi tra 0 e 255, ma di numeri decimali compresi tra 0 e 1 (0 rappresenta l'assenza di colore e 1 la presenza piena del colore).
Riguarda sul manuale i vari dettagli, perché lì le informazioni sono più sicure di quelle che ti do io.

Altra cosa che mi sono ricordato: credo che devi usare il comando "hold on;" quando inizi a disegnare il grafico (dopo aver aperto la finestra su cui disegnare). E' infatti quello il comando che preserva ciò che hai disegnato, anziché eliminare tutto quanto e ricominciare dal disegno vuoto quando fai una modifica al grafico.
Vedi comunque tutto sul manuale! ;-)

Re: Costruire cilindro in Matlab

Inviato: 28 gen 2011, 14:47
da Zeitung
Buon pomeriggio Berello,

al momento non ho avuto tempo per "studiare" la tua risposta ma mi premeva comunque ringraziarti per l'aiuto offerto.