MATLAB

34
MATLAB PROJEKTOWANIE GRAFICZNE

description

MATLAB. PROJEKTOWANIE GRAFICZNE. Funkcje graficzne można podzielić na cztery podstawowe grupy: przeznaczone do tworzenia wykresów dwu- i trójwymiarowych, prezentujące wykresy ciągłe i dyskretne, umożliwiające tworzenie grafiki wektorowej i rastrowej, wysokiego i niskiego poziomu. - PowerPoint PPT Presentation

Transcript of MATLAB

Page 1: MATLAB

MATLAB

PROJEKTOWANIE GRAFICZNE

Page 2: MATLAB

2

Funkcje graficzne można podzielić na cztery podstawowe grupy:

przeznaczone do tworzenia wykresów dwu- i trójwymiarowych,

prezentujące wykresy ciągłe i dyskretne, umożliwiające tworzenie grafiki

wektorowej i rastrowej, wysokiego i niskiego poziomu.

Page 3: MATLAB

3

OKNA GRAFICZNE

Funkcja Opis

figure tworzy nowe okno graficzne i uaktywnia je

figure(n) uaktywnia okno o nr n lub tworzy nowe i daje

mu nr n

close zamyka okno aktywne

close(n) zamyka okno o nr n

close all zamyka wszystkie okna

clf usuwa zawartość aktywnego okna

Page 4: MATLAB

4

Funkcja subplotFunkcja ta umożliwia umieszczanie wielu rysunków w jednym oknie. Dzieli ona okno na mniejsze prostokątne okienka, w których można narysować odrębne wykresy. subplot(m,n,p) – dzieli okno graficzne na mxn okienek

oraz uaktywnia okno p. okienka są numerowane od lewej do prawej, wierszami od góry do dołu.

subplot(‘Position’,[lewy dolny szerokość wysokość]) – tworzy w obrębie aktywnego rysunku nowe prostokątne okienko o podanym położeniu i wymiarach. Położenie jest podawane względem lewego dolnego rogu rysunku. Parametry szerokość=wysokość=1 oznaczają układ o rozmiarach rysunku.

Page 5: MATLAB

5

Grafika dwuwymiarowa

Polecenie Opis

plot(x,y) rysuje wykres elem.wektora y wzgl.elem.wektora x;

plot(y) rysuje wykres elem.wektora y, przyjmując x=1:length(y);

plot(x,y,s) rysyje wykres y(x) z określeniem dokładnego wyglądu linii; s-łańcuch

zawierający kody;

plot(x1,y1,x2,y2,...) rysuje w jednym oknie wiele wykresów: y1(x1), y2(x2),...

plot(x1,y1,s1,x2,y2,s2,..)

rysuje w jednym oknie wiele wykresów z określeniem dokładnego

wyglądu linii każdego z nich.

Page 6: MATLAB

6

Znaki Rodzaj linii

‘-’ ciągła (domyślna)

‘- -’ kreskowana

‘:’ kropkowana

‘-.’ kreska-kropka

Page 7: MATLAB

7

Znaki Kolor linii

‘y’ żółty

‘m’ karmazynowy

‘c’ turkusowy

‘r’ czerwony

‘g’ zielony

‘b’ niebieski

‘w’ biały

‘k’ czarny

Page 8: MATLAB

8

Znaki Oznaczenia punktów

‘+’ krzyżyk

‘*’ gwiazdka

‘.’ kropka

‘o’ kółko

‘x’ iks

‘s’ kwadrat

‘d’ romb

‘p’ gwiazdka pięcioramienna

‘h’ gwiazdka sześcioramienna

‘v’ trójkąt skierowany do dołu

‘^’ trójkąt skierowany do góry

‘<‘ trójkąt skierowany w lewo

‘>’ trójkąt skierowany w prawo

Page 9: MATLAB

9

Funkcja linspace

Funkcja ta pomaga w tworzeniu danych

do wykresu. linspace(x1,x2,N) – generuje

wierszowy wektor N liczb rozłożonych równomiernie w przedziale od x1 do x2.

linspace(x1,x2) – generuje domyślnie 100 liczb z przedziału x1 do x2.

Page 10: MATLAB

10

Funkcje opisujące wykresy

Funkcja Opis

xlabel(tekst) wyświetla łańcuch znaków tekst jako opis osi x aktywnego wykresu

ylabel(tekst) wyświetla łańcuch znaków tekst jako opis osi y aktywnego wykresu

title(tekst) wyświetla łańcuch znaków tekst jako tytuł aktywnego wykresu

text(x,y,tekst) wyświetla łańcuch znaków tekst w miejscu określonym przez współrzędne x,y

legend(s1,s2,..)

wyświetla legendę; łańcuch znaków s1 jest opisem odnoszącym się do pierwszego

wykresu,s2-drugiego,...

grid on/off włącza/wyłącza wyświetlanie pomocniczej siatki współrzędnych

Page 11: MATLAB

11

Funkcja hold

Wyświetlanie wykresu w oknie graficznym powoduje

jednoczesne wyczyszczenie okna i usunięcie poprzedniego

rysunku. Dodanie wykresu do znajdującego się w oknie

umożliwia funkcja hold. hold on/off – wyłącza/włącza tryb czyszczenie okien; ishold – sprawdza stan przełącznika hold; axis – zmiana wyglądu osi.

Page 12: MATLAB

12

Polecenie Opis

axis([xmin xmax ymin ymax]) ustawia zakres osi x i y

axis auto włącza tryb automatycznego ustawiania zakresu osi

axis manual włącza tryb autom.ustawienia zakresu osi; po włączeniu przełącznika hold

wszystkie kolejne wykresy będą rysowane w takim samym układzie

współrzędnych

axis ij zmienia układ współ.na macierzowy

axis xy zmienia układ współ.na kartezjański

axis equal zmienia skalowanie osi tak, aby jednostka na podziałce miała ten sam

rozmiar na wszystkich osiach

Page 13: MATLAB

13

axis image zmienia rozmiary osi na takie same, jak rozmiary wykresu

axis square ustawia jednakowy rozmiar wszystkich osi

axis normal przywraca standardowe ustawienia rozmiaru osi

axis off ukrywa osie wraz z ich opisem

axis on przywraca wyświetlanie osi

[s1,s2,s3]=axis(‘state’)

zwraca aktualne ustawienia układu:s1-auto lub manual, s2-on lub off,s3-xy lub ij

v=axis zwraca wektor wierszowy v=[xmin xmax ymin ymax]

Page 14: MATLAB

14

Funkcja fplot

Z tej funkcji korzystamy w celu narysowania możliwie najbardziej precyzyjnego wykresu funkcji. fplot(f,[x0,xk]) f-łańcuch znaków zawierających nazwę funkcji; x0,xk-początek i koniec przedziału rysowania funkcji; [x,y]=fplot(...) – nie powoduje narysowania wykresu,

tylko zwraca wektor argumentów x i wektor wartości funkcji y. Wykres uzyskanych danych można narysować za pomocą polecenia plot(x,y).

Page 15: MATLAB

15

Wykresy w skali logarytmicznej

Funkcja Opis

loglog(x,y,s) rysuje wykres, używając skal logarytmicznych na obu osiach

semilogx(x,y,s) ...tylko na osi x

semilogy(x,y,s) ...tylko na osi y

Page 16: MATLAB

16

Funkcja logspace

Pomaga w przygotowywaniu wykresów w skali

logarytmicznej. Generuje wektor wierszowy N

liczb, rozmieszczonych logarytmicznie między

wartościami 10^x1 a 10^x2:

logspace(x1,x2,N).

Wywołanie funkcji bez argumentu N spowoduje

wygenerowanie wierszowego wektora 50 liczb.

Page 17: MATLAB

17

Funkcja polar

Funkcja ta służy do rysowania wykresów w

biegunowym układzie współrzędnych:

polar(theta,r,s);

theta – wektor kątów (w radianach) dla

poszczególnych punktów;

r – wektor odległości poszczególnych

punktów od początku układu

współrzędnych.

Opcjonalnym argumentem funkcji jest łańcuch znaków

s, określający wygląd rysowanej linii, jak przy funkcji

plot.

Page 18: MATLAB

18

Funkcje rysujące wykresy danych zespolonych

Funkcja Opis

plot(z,s) jeżeli z jest macierzą o elementach zespolonych, to zostanie narysowany wykres

Im(z)=f(Re(z)); równoważne polecenie: plot(real(z),imag(z),s)

compass(z,s) compass(x,y,s)

rysuje wykres, na którym elementy macierzy zespolonej z są przedstawione w postaci strzałek o wspólnym początku i grotach w punktach opisanych przez współrzędne

x=real(z), y=imag(z); x i y są współrzędnymi kartezjańskimi, wykres jest rysowany w biegunowym układzie współrzędnych

Page 19: MATLAB

19

feather(z,s)

feather(x,y,s)

rysuje wykres, na którym elementy macierzy zespolonej z są przedstawione w postaci

strzałek o początkach rozmieszczonych

równomiernie na osi x; długości strzałek są równe

modułom elementów macierzy z, a kąty nachylenia strzałek – ich argumentom.

Page 20: MATLAB

20

GRAFIKA TRÓJWYMIAROWA

• Matlab zawiera dużą liczbę wbudowanych funkcji służących do wizualizacji obiektów trójwymiarowych. Zapoznamy się min. z potrzebnymi do tworzenia wykresów krzywych przestrzennych (plot3), siatek (mesh), powierzchni (surf) oraz wykresów konturowych (contour).

• Aby uzyskać w Matlabie pomoc na temat funkcji 3D należy w oknie komend wydać komendę help graph3d.

Page 21: MATLAB

21

Funkcja plot3

• Polecenie

plot3(x,y,z,s)

generuje trójwymiarową krzywą złożoną z

punktów (xi, yi, zi), których współrzędne zostały

określone w wektorach x, y, z. Wektory muszą

być tej samej długości.

Funkcja ta jest odpowiednikiem funkcji plot w

grafice dwuwymiarowej.

Page 22: MATLAB

22

• Ćw.1

Wykonaj wykres funkcji

r(t)=< t*cos(t), t*sin(t), t >, t=-10*pi:pi/100:10*pi.

Podpisz osie, włącz siatkę.

Page 23: MATLAB

23

Funkcja meshgrid• Powierzchnia rysowana jest w Matlabie jako

wykres funkcji z=f(x,y), przy czym współrzędne punktów (xi,yi) określone są za pomocą wektorów X i Y, gdzie indeksy ij przyjmują wartości

i=1:length(X), j=1:length(Y).Ponieważ tworzymy wykres trójwymiarowy na dwuwymiarowej płaszczyźnie ekranu, na początek należy wygenerować specjalną siatkę na płaszczyźnie XY w tych węzłach, w których szukane są wartości funkcji w osi z. Służy do tego funkcja meshgrid.

Page 24: MATLAB

24

[x,y]=meshgrid(X,Y) – transformuje obszar opisany przez wektory X i Y (z przestrzeni 3D) na dwie macierze x oraz y we współrzędnych ekranowych 2D.

[x,y]=meshgrid(X) – jest równoważne wywołaniu meshgrid(X,X).

Page 25: MATLAB

25

Funkcja mesh

• mesh(x,y,z,c) –rysuje powierzchnię opisaną macierzami x,y,z w postaci kolorowej siatki o polach wypełnionych kolorem tła; elementy macierzy c określają kolory linii poszczególnych pól.

• mesh(x,y,z)-rysuje powierzchnię, przyjmując c=z.• mesh(z,c)-rysuje wykres wartości elementów

macierzy z, przyjmując x=1:n, y=1:m, gdzie [m,n]=size(z).

• meshc(x,y,z,c)-rysuje siatkę identyczną jak funkcja mesh i umieszcza pod nią wykres poziomicowy.

• meshz(x,y,z,c)-działa jak mesh, ale dodatkowo w dół od krawędzi wykresu rysowane są linie określające płaszczyzny odniesienia.

Page 26: MATLAB

26

Ćw.2

Utwórz wykres paraboloidy hiperbolicznej z=y2-x2 w przedziałach x=-1:0.05:1,

y=-1:0.05:1.

Wyłącz układ współrzędnych, dodaj

wykres konturowy.

Page 27: MATLAB

27

Funkcja surf, waterfall

• surf(x,y,z,c) –rysuje różnokolorową powierzchnię opisaną macierzami x,y,z.

• surf(x,y,z) –rysuje powierzchnię, przyjmując c=z.• surf(z,c) –rysuje powierzchnię, przyjmując x=1:n,

y=1:m, gdzie [x,y]=size(z).• surfc(x,y,z,c) –łączy działanie funkcji surf i contour.• surfl(x,y,z,s,k) –rysuje powierzchnię z

uwzględnieniem odbić światła; s-określa kierunek, z którego pada światło, k-określa współczynniki odbicia i rozproszenia.

• waterfall(x,y,z,c) –działa jak meshz, ale nie rysuje linii odpowiadających kolumnom macierzy.

Page 28: MATLAB

28

Ćw.3

Napisz skrypt, który rysuje wykresy funkcji:

f(x,y)=exp(-(x-1).^2+y.^2)+exp(-(x+1).^2-y.^2)

dla x,y=-3:0.3:3, w jednym oknie graficznym

za pomocą poleceń surf i waterfall.

Page 29: MATLAB

29

Mapy kolorów

• Mapa kolorów jest macierzą trójkolumnową, której elementami są liczby rzeczywiste z zakresu 0,0-1,0. Każdy wiersz macierzy jest wektorem RGB definiującym dany kolor za pomocą intensywności trzech podstawowych kolorów:czerwonego, zielonego i niebieskiego. Funkcja colormap pozwala odczytać lub zmienić mapę kolorów przypisaną aktywnemu rysunkowi.

m=colormap –zwraca aktualną mapę kolorów m. colormap(m) –zmiana aktualnej mapy kolorów na mapę m. colormap(‘default’) –przywraca standardową mapę kolorów.

Page 30: MATLAB

30

Mapa Opis

gray mapa odcieni szarości

hot mapa kolorów ciepłych – od czarnego, poprzez odcienie czerwonego, pomarańczowego i żółtego, aż do białego

cool mapa kolorów zimnych – od turkusowego do karmazynowego

autumn mapa kolorów zmieniających się od czerwonego, przez pomarańczowy, do żółtego

summer mapa odcieni kolorów żółtego i zielonego

hsv standardowa mapa kolorów w systemie HSV; każdy wiersz macierzy zawiera 3 liczby z zakresu od 0 do 1 opisujące odcień, nasycenie i jaskrawość

Page 31: MATLAB

31

Animacja

%skrypt filmm=moviein(5); %w macierzy m będzie przechowywanych 5 klatek animacji

x=0:pi/100:pi;for i=1:5 h1_line=plot(x,sin(i*x)); set(h1_line,'LineWidth',1.5,'Color','m') grid title('funkcja sinus sin(kx), k=1,2,3,4,5') h=get(gca,'title'); set(h,'FontSize',12) xlabel('x')

Page 32: MATLAB

32

k=num2str(i); if i>1 s=['sin(',k,'x)']; else s='sin(x)'; end ylabel(s) h=get(gca,'ylabel'); set(h,'FontSize',12)

m(:,i)=getframe; %każda klatka jest zapisywana w pojedynczej

kolumnie macierzy m

pause(2)end

movie(m) %odgrywa zapamiętane w macierzy m klatki animacji na

ekranie

Page 33: MATLAB

33

Funkcje shpere i cylinder

• sphere(n) – tworzy kulę o promieniu 1 oraz środku w początku układu współrzędnych z wykorzystaniem 2(n+1) punktów siatki tworzącej jej powierzchnię. Dodanie polecenia: surf(x+2,y-1,z+1) utworzy wykres kuli o promieniu 1 ze środkiem w punkcie (2,-1,1)

Page 34: MATLAB

34

• Funkcja cylinder jest wykorzystywana do tworzenia wykresów powierzchni obrotowych. Pobiera ona dwa opcjonalne parametry wejściowe.

W komendzie cylinder(r,n) parametr r oznacza wektor, który definiuje promienie walca w kolejnych punktach wzdłuż osi z, a n oznacza liczbę punktów siatki na obwodzie walca. Wartości domyślne dla tych parametrów to r =[1 1] oraz n=20.Komenda: cylinder([1 0]) tworzy stożek o wysokości i promieniu podstawy równym 1.