Sei sulla pagina 1di 12
5. Grafica 2D e 3D
5. Grafica 2D e 3D

GRAFICI IN 2 DIMENSIONI

>> x=0:pi/100:2*pi; >> y=sin(x);

>> plot(x,y);

>> grid

con

plot = ascissa x e ordinata y grid = traccia la griglia di riferimento.

Sullo stesso grafico si può tracciare più di una curva:

>> y1=sin(x); >> y2=sin(2*x);

>> y3=sin(3*x);

>> plot(x,y1,x,y2,x,y3)

Si può scegliere lo stile della linea (linestyle), l’indicatore

(marker), il colore (linecolor) con sintassi:

plot(x,y,’linecolor-linestyle-marker’).

Esempio: plot(x,y,’r-.*’)

con

r = rosso

-. = linea-punto

* = ogni coppia (x,y) viene denotata con *

Colori: r, g, b, w, k, y, c, m = rosso, verde, blu, bianco,

nero, giallo, azzurro, magenta

Stili linea: - (linea continua), -- (linea tratteggiata), : (), -

. (-.-.-.), none (nessuna linea)

Marker: +, o, x, *

Esempio: curva passante per punti discreti >> x=0:0.1:2*pi; >> y=sin(x);

>> plot(x,y,’*’)

Titolo: title(‘testo’)

Label: xlabel (‘x’), ylabel (‘y’)

Legenda: legend(‘stringa1’,’stringa2’,…)

hold on, hold off serve per mantenere attivo un grafico e

per rappresentare su di esso altre curve oppure per chiudere la finestra

Esempio:

>> x=0:0.1:2*pi; y=sin(x); y1=sin(2*x); >> plot(x,y) >> hold >> plot(x,y1,’r’)

>> hold off

>> y2=sin(4*x); >> plot(x,y2)

disegna le curve y e y1 su un grafico, e y2 su un altro

grafico.

axis permette di controllare gli estremi degli assi ed il

loro aspetto, specificando xmin, xmax, ymin, ymax

Esempio: intersezione tra y 1 =e x , y 2 =x+3 >> x=0:0.01:10; >> y1=exp(x);

>> y2=x+3;

>> plot(x,y1,x,y2) >> axis([1 2 0 10])

axis(‘square’) rende gli assi x, y della stessa lunghezza, ma con scale diverse

axis(‘equal’) suddivide x, y con incrementi di ampiezza

uguale

Semilogx, semilogy permette di inserire una scala

logaritmica su x, y, mentre loglog(x,y) inserisce la scala logaritmica sia su x che su y

Esempio:

>> x=1:500; >> y=exp(x); >> semilogy(x,y)

GRAFICI DI CURVE IN 3 DIMENSIONI

Si usa il comando plot3(x,y,z)

Esempio:

>> x=0:pi/50:10*pi; >> plot3(sin(x),cos(x),x);

GRAFICI DI SUPERFICI IN 3 DIMENSIONI

I comandi mesh e surf permettono di rappresentare la

superficie z=z(x,y) in 3 dimensioni:

mesh = traccia lo scheletro della superficie

surf = riempie con facce poligonali colorate

colorbar = fa apparire una barra colorata che mostra a

che numero corrisponde il colore della superficie;

meshgrid = trasforma x,y nelle matrici X,Y che

consistono nella ripetizione delle ascisse/ordinate ad

ordinata/ascissa fissata

shading interp = interpola i colori sulla superficie

Esempio:

>> x=-2:0.2:2; >> y=-2:0.2:2;

>> [X,Y]=meshgrid(x,y);

e definiamo la funzione z=x e -(x 2 +y 2 ) :

>> Z=X+exp(-(X.^2+Y.^2));

>> mesh(X,Y,Z); >> surf(X,Y,Z); >> colormap(hsv)

(le possibili mappe di colori sono: hot, cool, hsv, flag)

contour = traccia nel

z=z(x,y);

piano x,

y le curve

di livello

di

contour(X,Y,Z,N) = traccia N curve oppure si può fissare

un vettore v che elenca le curve di livello da tracciare:

>> v=[-0.4 -0.3 -0.2 0 0.3] >> contour(X,Y,Z,v)

surfc = combinazione di surf e contour plot

Gradient = calcola le componenti p x , p y del gradiente e con quiver si tracciano frecce che indicano modulo,

direzione e verso del gradiente

Esempio:

>> [X,Y]=meshgrid(-2:0.2:2,-2:0.2:2);

>> Z=X.*exp(-(X.^2+Y.^2)); >> [px,py]=gradient(Z,.2,.2); >> quiver(X,Y,px,py)

Funzioni per disegnare una sfera e un toro:

function dissfera(n)

[ u, v ] = meshgrid( 0 : 2*pi/100 : 2*pi );

x = n*cos( u ).* cos( v );

y = n*cos( u ).* sin( v );

z = n*sin( u );

surf( x, y, z );

end

function distoro(n,m)

[ u, v ] = meshgrid( 0 : 2*pi/100 : 2*pi );

x = n*(m+cos( u )).* cos( v );

y = n*(m+cos( u )).* sin( v );

z = n*sin( u );

surf( x, y, z );

end

Per salvare il contenuto in un file:

print dbmp256 nomefigura (.bmp)

print dpsc nomefigura (.ps)

(vedere help print).