Matlab
Reprezentari grafice 3DReprezentari grafice 3D In acest capitol se prezinta functiile MATLAB pentru reprezentarile grafice in plan sau spatiu asociate cu campurile bidimensionale: clabel - plaseaza marcaje pe liniile de contur, referitoare la cota Z; cornet3 - reprezinta dinamic (in miscare ) traiectoria unui punct, intr-o reprezentare grafica 3D; contour -reprezinta grafic in 2D liniile de contur (liniile de nivel constant ); contourc -returneaza o matrice care contine perechile (cota Z-numar puncte si coordonate X-coordonata Y); contour3 -reprezinta grafic in 3D liniile de contur (liniile de nivel constant); fill3 -reprezinta grafic poliedre in 3D; plot3 -reprezinta grafice in 3D; quiver -reprezinta grafic orientarea unui camp de vectori. 1.Reprezentarea liniilor de contur 1.1.Calculul matricei liniilor de contur Matricea care contine perechile de coordonate (X,Y) ale fiecarei linii de contur, se determina cu functia contourc; se apeleaza cu una dintre sintaxele: C=contourc(Z) -calculeaza matricea liniilor de contur ale matricei Z. Numarul liniilor de nivel si valorile acestora sunt alese automat; C=contourc(Z,n) -calculeaza matrice liniilor de contur ale matricei Z pentru n linii de contur(n este un scalar); C=contourc(Z,v) -calculeaza matricea liniilor de contur ale matricei Z la nivelele specificate de vectorul v; C=contourc(x,yZ),C=contourc(x,y,z,n) si C=contourc(x,y,Z,v) -calculeaza matricea liniilor de contur ale matricei Z si utilizeaza date din vectorii x si y pentru a controla scalarea axelor Ox si Oy. Elementele x si y sunt cu pas constant. 1.2.Etichetarea cotelor liniilor de contur Pentru a preciza cotele liniilor de contur intr-o reprezentare se foloseste functia clabel; se apeleaza cu una dintre sintaxele: clabel(C) - eticheteaza liniile de nivel. Pozitia acestora este aleasa aleatoriu; clabel(C,V) - eticheteaza liniile de nivel precizate de vector V; clabel(C,’manual’) - eticheteaza liniile de nivel selectate cu mouse-ul. Se apasa tasta „ENTER” pentru a termina actiunea si „Space Bar” pentru a introduce urmatoarea linie de nivel. Exemplul 1.1. Sa se reprezinte grafic si sa se eticheteze liniile de nivel ale functiei z =x exp(-x2-y2) in domeniul:. Cu secventa MATLAB: [x,y]= meshdom(-2:.2:2,-2:.2:3); z=x.*exp(-x. 2-y. C=contour(-2:.2:2,-2:.2:3,z,8) clabel(C) se obtine graficul din figura: Etichetarea liniilor de nivel cu functia clabel 1.3.Reprezentarea grafica in spatiu a liniilor de contur Reprezentarea grafica in spatiu a liniilor de nivel constant se realizeaza cu functia contour3; se apeleaza cu una dintre sintaxele: contour3(Z) -realizeaza reprezentarea 3D a liniilor de contur ale matricei Z; contour3(Z,N) -realizeaza reprezentarea 3D a N linii de contur ale matricei Z; contour3(X,Y,Z,) si contour3(X,Y,Z,N) -utilizeaza matricele X si Y pentru a defini limitele axelor. Exemplul 1.2. Sa se reprezinte grafic in 3D liniile de contur ale functiei predefinite peaks. Cu secventa MATLAB: x= -3:.125:3; y=x; [X,Y]=meshgrid(x,y); Z=peaks(X,Y); contour3(X,Y,Z,20)
se obtine secventa din figura: Reprezentarea grafica a liniilorde contur cu functia contour3 1.4.Reprezentarea grafica a campurilor de vectori orientati Reprezentarea grafica a unui camp de vectori orientati foloseste functia quiver, se apeleaza cu una din sintaxele: quiver(X,Y,DX,DY) -reprezinta mici segmente de dreapta cu sageti (vectori) avand originea la perechile de elemente (X,Y). Fiecare pereche de elemente din matricele DX si DY sunt proiectiile vectorului pe axele Ox si Oy; quiver(DX,DY) - presupune implicit X=1:n si Y=1:m. In acest caz DX si DY sunt pe o retea rectangulara; quiver(x,y,dx,dy,s) si quiver(dx,dy,s) - controleaza lungimea sagetilor prin factorul de scala s. Exemplul 1.3. Sa se reprezinte grafic vectorii unei miscari browniene. Cu secventa MATLAB: xg=-2:.5:2; yg=-2:.5:2; dx=rand(length(xg),length(xg))-0.5; dy=rand(length(yg),length(yg))-0.5; quiver(xg,yg,dx,dy) se obtine reprezentarea din figura: Reprezentarea grafica a campurilor devectori cu functia quiver 2.Reprezentari spatiale cu linii 2.1.Reprezentarea liniilor in spatiu Reprezentarea linilor in spatiu se face cu functia plot3, care se apeleaza cu una dintre sintaxele: plot3 (x,y,z) -unde x,y si z sunt vectori de aceeasi dimensiune, reprezinta grafic o linie in spatiul 3D, linie care trece prin punctele ale caror coordonate sunt tripletele (x,y,z); plot3(x,y,z) -unde x,y si z sunt matrice de aceleasi dimensiuni, reprezinta grafic cate o linie in spatiul 3D, pentru fiecare triplet al coloanelor matricelor [X(:,i),Y(:,i),Z(:,i)]; Exemplul 2.1. Sa se reprezinte grafic o spirala in 3D. Cu secventa MATLAB: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) se obtine figura: Reprezentarea grafica a unei liniiin spatiu cu functia plot3 2.2.Reprezentarea grafica spatiala a poliedrelor Reprezentarea grafica in spatiu a poliedrelor se face cu functia fill3, care se apeleaza cu una dintre sintaxele: fill3(x,y,z,c) fill3(x,y,z,’c’) fill3(x1,y1,z1,c1,x2,y2,z2,c2, . ..) 2.3.Reprezentarea suprafetelor cu „mesh” Reprezentarea suprafetelor cu „mesh” se face folosind functiile: mesh, meshc si meshz care se apeleaza cu sintaxele: mesh(X,Y,Z,C) mesh(X,Y,Z) mesh(Z) mesh(Z,C) meshc( . ) meshz( . ) Exemplul 2.2. Reprezentati grafic functia Z=Xexp(-X2-Y2): 1.ca suprafata „mesh” 2.ca suprafata „mesh” asociata cu linii de contur 3.ca suprafata „mesh” cu plan de referinta Cu secventa MATLAB: [X,Y]=meshgrid (-2:.2:2, -2:.2:2); Z=X.*exp(-X. 2-Y. subplot(221);mesh(X,Y,Z) subplot(222);meshc(X,Y,Z) subplot(223);meshz(X,Y,Z) se obtin reprezentarile din figura: Reprezentarea cu „mesh” a suprafetelor 3D2.4.Reprezentarea grafica a suprafetelor netede Functiile surf si surfc reprezinta suprafete 2D sau suprafete 3D asociate cu liniile de nivel proiectate pe planul bazei; se apeleaza cu una dintre sintaxele: surf(X,Y,Z,C) -reprezinta o suprafata deschisa de matricele X,Y si Z, si colorata cu elemente precizate in matricea C. In utilizari simple argumentele X si Y pot fi vectori sau pot fi omise; argumentul C poate fi si el omis; surf(X,Y,Z) -considera C=Z, astfel incat culoarea este proportionala cu inaltimea suprafetei; surf(x,y,Z) si surf(x,y,Z,C) - realizeaza reprezentarea suprafetei descrise de matricea (mxn), unde vectorul x are dimensiunea n, vectorul y are dimensiunea m, iar matricea C are dimensiunea m x n; surf(Z) si surf(Z,C) -presupune x=1:n si y=1:m pentru reprezentarea grafica 3D a matricei Z, folosind eventual si matricea de culoare C; surfc( . ) -este identica cu surf( . ), exceptand liniile de nivel, care sunt reprezentate sub suprafata, pe acelasi grafic. Exemplul 2.3. Reprezentati o suprafata 3D asociata cu liniile de nivel. Cu secventa MATLAB: [X,Y]=meshgrid(-3:.25:3); Z=peaks(X,Y); surfc(X,Y,Z) se obtine reprezentarea grafica din figura: Reprezentarea 3D a suprafetelorasociate cu linii de nivel. 3.Reprezentaea obiectelor spatiale Obiectele spatiale predefinite in MATLAB sunt: cylinder -genereaza un obiect cilindru; sphere -genereaza un obiect sfera. 3.1.Reprezentarea grafica a obiectului cilindru Functia cylinder genereaza un cilindru de raza R, cu cercul bazei aproximativ din N puncte echidistante; se apeleaza cu sintaxa: [x,y,z]=cylinder(R,N) Exemplul 3.1. Sa se reprezinte grafic un con de raza Rc1=0.5 si inaltime Hc=7.5 si un trunchi de piramida cu baza hexagonala, cu cercurile circumscrise bazele de raze Rp1=1 si Rp2=0.5 si inaltime Hp=7.5. Cu secventa MATLAB: Rc1= 0.5; Rc2=0; Hc=7.5; N=30; [xc,yc,zc]=cylinder ([Rc1 Rc2],N);zc=zc*Hc; view([-37.5 30]); surface (xc,yc,zc); grid figure Rp1=1; Rp2=0.5; Hp=7.5; N=6; [xp,yp,zp]=cylinder ([Rp1 Rp2], N); zp=zp*Hp; view([-37.5 30]); surface (xp, yp, zp);grid se obtine reprezentarea grafica din figura:
Reprezentarea grafica a obiectelor cu functia cylinder3.2.Reprezentarea grafica a obiectului sfera Functia sphere genereaza coordonatele (x,y,z) ale sferei unitare, care pot fi utilizate cu functiile surf si mesh, se apeleaza cu una dintre sintaxele: [x,y,z]=sphere(n) -genereaza coordonatele sferei in trei matrice (n+1)x(n+1), care pot fi reprezentate grafic cu functia surf (x,y,z) sau mesh (x,y,z). sphere(n) -reprezinta grafic suprafata unei sfere. Exemplul.3.2.1.Sa se genereze si sa se reprezinte grafic o sfera. Cu secventa MATLAB: [X,Y,Z]=sphere(20); mesh(X,Y,Z); grid
|