limbaje 10.ppt

14
Limbaje de programare inginereşti Tema 10 MATLAB. Elemente de grafica 2D

Upload: codrinamagda

Post on 03-Oct-2015

22 views

Category:

Documents


0 download

TRANSCRIPT

  • Limbaje de programare ingineretiTema 10

    MATLAB. Elemente de grafica 2D si 3D

  • FERESTRE figure Reprezentrile grafice se fac ntotdeauna ntr-o fereastr separat fa de cele deschise n cadrul programului MATLAB.Funciile grafice deschid in mod automat o noua fereastra figure daca nu exista nici o fereastra deja afiata pe ecran. Daca o fereastra figure exista, MATLAB folosete acea fereastra pentru toate reprezentrile grafice, fiecare reprezentare nlocuind-o pe precedenta. Daca exista mai multe ferestre deschise, MATLAB se fixeaz la una dintre ele ce reprezint figura curent (ultima figur folosit sau pe care s-a executat un click). Pentru a face ca o figur existent s devin figura curenta, se d click pe acea fereastr sau se tasteaz figure(n), unde n este numrul din bara de titlu a figurii. Rezultatele comenzilor grafice ulterioare sunt afiate in aceasta fereastra. Pentru a deschide o noua fereastra grafic i pentru a o face figura curenta, se tasteaz figure.

  • CREAREA UNUI GRAFIC n crearea graficelor, MATLAB-ul utilizeaz tot reprezentarea vectorial a seturilor de date x, y i z cu ajutorul crora se realizeaz graficul.Dup definirea celor doi sau trei vectori, pentru reprezentarea grafic se folosesc diferite funcii, n funcie de tipul de grafic dorit.Vectorii se pot defini i n interiorul funciilor de trasare a graficelor.

  • FUNCIA plotFunctia plot are diferite forme, in funcie de argumentele de intrare. Daca y este un vector, plot(y) produce un grafic, liniar pe poriuni, al elementelor lui y, in funcie de index-ul elementelor lui y. Daca sunt specificai doi vectori ca argumente, plot(x ,y) creeaz un grafic al lui y funcie de x.

    Exempleplot([1,4,2,6,5,8])

    plot([0:pi/100:2*pi],sin([0:pi/100:2*pi]))

    x = 0:0.1:5; y = x.^2-2*x+3; plot(x, y)

  • FUNCIA plotForma cea mai general a funciei este plot(x ,y,speclinie)unde speclinie specific diferite amnunte legate (n aceast ordine) de tipul liniei ce unete punctele definite de x i y, markerul cu care se reprezint punctele definite de x i y i culoarea liniei. Valorile argumentelor ce pot fi utilizate i semnificaia lor sunt urmtoarele:

  • FUNCIA plotExempleplot(x,y,--,o,m)plot(x,y, o,m)plot(x,y,--,m)

  • FUNCIA plotFuncia plot se completeaz cu comenzile pentru titlu, cu etichete pentru axa Ox i Oy, pentru legend, cu indicarea prin text pe grafic al punctului de minim i de maxim sau a alte puncte de interes:>> title ('nume')>> xlabel('nume axa x')>> ylabel('nume axa y')>> text(x,y,'text')La comanda text valorile numerice indic poziia punctului (x,y) din fereastra graficului de unde va ncepe scrierea textului.>>legend(nume1,nume2, ,pozitie)Valorile variabilei poziie pot fi:0 = poziionare automat 1 = colul din dreapta sus 2 = colul din stnga sus 3 = colul din stnga jos 4 = colul din dreapta jos -1 = la dreapta graficului

  • FUNCIA plotExemplu>> x = 0:0.1:5;>> y = x.^2-2*x+3;>> plot(x, y), title('Functie de gradul II'), xlabel('x'), ylabel('f(x)'),...legend('functia',4)Reprezentarea mrimilor complexe

    Cnd argumentele funciei plot sunt complexe, partea imaginara este ignorata cu excepia situaiei cnd funciei i se transmite un singur argument complex. In acest caz special, comanda este o prescurtare pentru trasarea unui grafic de tip parte reala funcie de partea imaginara. Deci, funcia plot(Z) unde Z este un vector sau matrice complexa, este echivalenta cu plot(real(Z),imag(Z)).

    t = 0:pi/20:2*pi; plot(exp(i*t),'-o')

  • FUNCIA plotTrasarea de mai multe curbe pe acelai grafic

    Se poate face n dou moduri:1. Indicnd toate curbele n aceeai funcie plot>>plot(x1,y1,x2,y2,)2. Cu ajutorul comenzilor hold on si hold off.La ntlnirea comenzii hold on, MATLAB nu inlocuieste graficul existent la apelul unei noi comenzi plot ci adaug noile curbe la graficul curent, rescalnd axele dac este necesar. Comanda hold off readuce starea ferestrei la normal.>>x=1:0.1:10;>>y1=x.*2;>>y2=10*x;>>plot(x,y1);>>hold on;>>plot(x,y2);>>hold off

  • FUNCIA plotTrasarea de mai multe grafice independente n aceeai fereastr

    Comanda subplot permite afiarea in aceeai fereastra a mai multor grafice sau tiprirea acestora pe aceeai coala de hrtie. Tastnd subplot(m,n,p) fereastra figure este partiionata intr-o matrice m x n de grafice mai mici si selecteaz graficul cu index p ca grafic curent. Graficele sunt numerotate nti pe primul rnd de sus al ferestrei figura, apoi pe cel de-al doilea rnd etc.

  • ALTE FUNCII

    Plot3 Grafica 3D cu scara liniara Loglog Grafica 2D cu scara logaritmica pe ambele axe X si Y Semilogx Grafica 2D cu scara logaritmica pe axa X si scara lin. pe axa Y Semilogy Grafica 2D cu scara logaritmica pe axa Y si scara lin. pe axa X Plotyy Grafica cu etichetare pe partea dreapta si stnga Stem Grafica 2D pentru seturi de date discrete Stem3 Grafica 3D pentru seturi de date discrete Bar Grafica 2D, reprezentare cu bare Barh Grafica 2D, reprezentare cu bare orizontale Bar3 Grafica 3D, reprezentare cu bare Bar3h Grafica 3D, reprezentare cu bare orizontale Stairs Grafica 2D, reprezentare in scara Area Grafica 2D, reprezentare cu arii Fill Grafica 2D, de reprezentare a poligoanelor Fill3 Grafica 3D, de reprezentare a poligoanelor

  • Grafice 3DMATLAB definete o suprafaa prin coordonata z a punctelor situate pe o reea in planul x-y, folosind linii drepte pentru conectarea punctelor alturate. Funciile grafice mesh si surf afiseaza suprafee in trei dimensiuni. Funcia mesh genereaz suprafee de tip plasa colornd doar liniile ce conecteaz punctele definite. Funcia surf afiseaza att liniile de legtura cat si fetele suprafeei colorate.Funcia meshgrid transforma domeniul specificat printr-un singur vector sau doi vectori x si y in matrice X si Y pentru evaluarea funciilor de doua variabile. Rndurile lui X sunt copii ale vectorului x si coloanele lui Y sunt copii ale vectorului y. Sintaxa:[x,y]=meshgrid([-xmin:stepx:xmax],[ymin:stepy:ymax])

  • Grafice 3DPentru desenarea de figuri geometrice n spaiu avem trei comenzi:- cylinder(y,n) deseneaz un corp de rotaie n jurul axei z generat de o curb creat de vectorul y i avnd n puncte pe circumferin. Daca y este constant atunci deseneaz o prism regulat cu baza avnd n laturi. Cu ajutorul ei se pot desena i piramide sau conuri, dup cum numrul n este mai mic sau mai mare. n acest caz z trebuie s fie o dreapt.- sphere(n) o sfer cu n puncte pe circumferin.- ellipsoid(xc,yc,zc,rx,ry,rz) genereaz un elipsoid de centru (xc,yc,zc) i semiaxe rx,ry,rz.

    *