MATLAB

Post on 02-Jan-2016

25 views 0 download

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

MATLAB

PROJEKTOWANIE GRAFICZNE

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.

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

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.

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.

6

Znaki Rodzaj linii

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

‘- -’ kreskowana

‘:’ kropkowana

‘-.’ kreska-kropka

7

Znaki Kolor linii

‘y’ żółty

‘m’ karmazynowy

‘c’ turkusowy

‘r’ czerwony

‘g’ zielony

‘b’ niebieski

‘w’ biały

‘k’ czarny

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

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.

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

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.

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

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]

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).

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

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.

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.

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

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.

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.

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.

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ę.

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.

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).

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.

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.

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.

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.

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.

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ść

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')

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

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)

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.