clear all
clc
%%%%%%%%%%%%%%   Parte preparatoria para gerar superficies   %%%%%%%%%%%

x =  -2:0.1:2;           % gera o intervalo [-2,2] em x com passo de 0.2
y =  -2:0.1:2;           % gera o intervalo [-2,2] em y com passo de 0.2
[X,Y] = meshgrid(x,y);   % gera malha necessaria para plotar superficies

%%%%%%%%%%%%%%              Algumas superficies              %%%%%%%%%%% 

Z = X.^2 + Y.^2;            %%%   PARABOLOIDE   %%%
%Z = sqrt(X.^2 + Y.^2);            %%%   CONE   %%%
%Z = Y.^2 - X.^2;            %%%   SELA DE CAVALO   %%%
%Z = X.*Y.^2 - X.^3;         %%%   SELA DE MACACO   %%%
%Z = X.*Y.^3 - Y.*X.^3;      %%%   SELA DE CACHORRO   %%%
%Z = -(X.*Y).^2;             %%%   TENDA DE CIRCO OU BARRACA DE CAMPING   %%%
%Z = sin(3*sqrt(X.^2 + Y.^2))./sqrt(X.^2 + Y.^2);  %%%   PEDRA NA LAGOA   %%%
%Z = cos(X.^2 + Y.^2);       
%Z = exp(sin(X)).*cos(Y);
%Z = -Y.^2 + 3;
%Z = X.^3 + Y.^3;
%Z = sin(Y.*exp(-X));
%Z = 1./X;
%Z = (X.*Y).^2./(X.^3 + Y.^3);
%Z = (X.^3 + Y.^3)./(X.^2 + Y);
%Z = (X.*Y)./(X.^2 + Y.^2);
%Z = (X.*Y.^2)./(X.^2 + Y.^4);
%Z = (3*(X.^2).*Y)./(X.^2 + Y.^2);
%Z = sqrt((X+1).^2 + Y.^2) + sqrt((X-1).^2 + Y.^2);            


%%%%%%%%%%%%%%         Tipos de graficos de superficie       %%%%%%%%%%%    

surf(X,Y,Z)             % gera superficie a partir de coordenadas 3D
%surfc(X,Y,Z)            % superficie com curva de nivel
%surfl(X,Y,Z)
%mesh(X,Y,Z)             % gera malha a partir de coordenadas 3D
%meshc(X,Y,Z)            % malha com curva de nivel
%meshz(X,Y,Z)            % malha com finalizacao 'cortina' 
%waterfall(X,Y,Z)        % malha com finalizacao 'cascata' 
%contour(Z)              % curvas de nivel no plano
%contourf(Z)             % curvas de nivel no plano colorida
%contour3(Z)             % curvas de nivel no espaco

%%%%%%%%%%%   Colormap: permite alterar o mapa de cores dos graficos 3D   %%%%
%colormap(hsv)
%colormap(hot)
%colormap(gray)
%colormap(copper)
%colormap(pink)
%colormap(jet)
%colormap(cool)
%colormap(bone)
%colormap(flag)
%colormap(prism)

%%%%%%%%%%%%%%%%%%%%    Outros recursos graficos      %%%%%%%%%%%%%%%%%%%%%%%

%shading interp                  %%%   Interpola os pontos do grafico
%shading flat                    %%%   gradacao lisa
%shading faceted                 %%%   gradacao facetada
%colorbar                        %%%   Barra de cores ao lado do grafico
title('Grafico de Superficie')   %%%   Titolo para o grafico   %%%
xlabel('eixo x')                 %%%   Nome do eixo x  %%%%
ylabel('eixo y')                 %%%   Nome do eixo y  %%%%
zlabel('eixo z')                 %%%   Nome do eixo z  %%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%            FIM           %%%%%%%%%%%%%%%%%%%%%%%%%%

