background image

MATLAB

PROJEKTOWANIE 

GRAFICZNE

background image

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.

background image

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 

background image

4

Funkcja subplot

Funkcja 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 

m

x

n

 

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. 

background image

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,s

2,..)

 rysuje w jednym oknie wiele 

wykresów z określeniem 

dokładnego wyglądu linii 

każdego z nich.

background image

6

Znaki

Rodzaj linii 

‘-’

 ciągła (domyślna)

‘- -’

 kreskowana

‘:’

 kropkowana

‘-.’

 kreska-kropka

background image

7

Znaki 

Kolor linii

‘y’

 żółty

 ‘m’

 karmazynowy

 ‘c’

 turkusowy

 ‘r’

 czerwony

 ‘g’

 zielony

 ‘b’

 niebieski

 ‘w’

 biały

 ‘k’

 czarny

background image

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

background image

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

.

background image

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/of

 włącza/wyłącza wyświetlanie 

pomocniczej siatki współrzędnych

background image

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/of

 – wyłącza/włącza tryb 

czyszczenie okien;

  

ishold

 – sprawdza stan przełącznika hold;

  axis

 – zmiana wyglądu osi.

background image

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

background image

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 of

 ukrywa osie wraz z ich opisem

 axis on

 przywraca wyświetlanie osi

 

[s1,s2,s3]=axis(‘sta

te’)

 zwraca aktualne ustawienia układu:s1-

auto lub manual, s2-on lub of,s3-xy lub 

ij

 v=axis

 zwraca wektor wierszowy v=[xmin 

xmax ymin ymax]

background image

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

background image

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

background image

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.

background image

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.

background image

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

background image

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.

background image

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

.

background image

21

Funkcja plot3

• Polecenie 
        

plot3(x,y,z,s)

 generuje trójwymiarową krzywą złożoną z 
punktów (x

i

, y

i

, z

i

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

background image

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

background image

23

Funkcja meshgrid

• Powierzchnia rysowana jest w Matlabie jako 

wykres funkcji 

z=f(x,y),

 przy czym 

współrzędne punktów (x

i

,y

i

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

background image

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

background image

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.

background image

26

Ćw.2
Utwórz wykres paraboloidy 

hiperbolicznej z=y

2

-x

2

 w 

przedziałach x=-1:0.05:1, 

 y=-1:0.05:1. 
Wyłącz układ współrzędnych, dodaj 
wykres konturowy.

background image

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.

background image

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.

background image

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.

background image

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

 

summe
r

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

background image

31

Animacja 

%skrypt film
m=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')

background image

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

background image

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)

background image

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.


Document Outline