function plosny_graf_stinovani
% vykresleni prubehu funkci z = (sin(sqrt(x.^2+y.^2)))./(sqrt(x.^2+y.^2))
% pro x,y z intervalu od -20 do 20.
% trirozmerny graf (plosny), ruzne typy stinovani
while(1)
    p=input('Zadej pocet prvku na osach: ');
    if((p>=9)&&(p<=81))
        break;
    end
end
x=linspace(-20,20,p); % pocet bodu na ose x mozno menit od 9 do 81 pro porovnani vyslednych grafu 
y=linspace(-20,20,p); % pocet bodu na ose y mozno menit od 9 do 81 pro porovnani vyslednych grafu
[X,Y]=meshgrid(x,y); % vytvoreni pomocnych matic X, Y
S=sqrt(X.^2+Y.^2); % substituce S = (sqrt(x.^2+y.^2))
Z=sin(S)./S; % vypocet matice funkcnich hodnot Z (pouzita operace ./)

subplot(2,2,1); % rozdeleni grafickeho okna na 4 casti (nasledujici graf v 1. casti)
mesh(x,y,Z) % vykresleni prostoroveho plosneho grafu (drateny model)

subplot(2,2,2); % rozdeleni grafickeho okna na 4 casti (nasledujici graf v 2. casti)
surf(x,y,Z) % vykresleni prostoroveho plosneho grafu (stinovany model)
shading interp % interpolacni zpusob stinovani

subplot(2,2,3); % rozdeleni grafickeho okna na 4 casti (nasledujici graf v 3. casti)
surf(x,y,Z) % vykresleni prostoroveho plosneho grafu (stinovany model)
shading flat % stinovani po castech, jednotlive casti plochy grafu maji urcitou konstantni barvu 

subplot(2,2,4); % rozdeleni grafickeho okna na 4 casti (nasledujici graf v 4. casti)
surf(x,y,Z) % vykresleni prostoroveho plosneho grafu (stinovany model)
shading faceted % stinovani jako flat, plochy jsou oddeleny cernymi carami
end