%% 3D Graphik-Programmierung

% Loeschen aller Variablen, Command window leer machen
clear;
clc;
cla;

% --------------------------------
% Berechnen der zu plottenden Daten
xord = -2:.1:2;
yord = -2:.1:2;
[x,y] = meshgrid(xord,yord);
z1 = x .* exp(-x.^2 - y.^2);
z2 = 5*(x .* exp(-x.^2 - y.^2)) -1;

% --------------------------------
% einfacher surface plot
surf(x,y,z1)
surfc(x,y,z1)   % mit Bodenkontour
colormap summer
colormap hsv
colormap hot
shading interp
shading faceted
axis([-2 2 -2 3 -0.5 0.5])  % Achenkoordinaten min/max genau festlegen
title('Dies ist dann ja wohl ein 3D plot');
xlabel('X-Achse');
ylabel('Y-Achse');
zlabel('Funktionswert');


% --------------------------------
% einfacher mesh plot
mesh(x,y,z1)
meshc(x,y,z1)

% --------------------------------
%  plotten einer Funktion mit subplots
subplot(1,2,1);
   surf(x,y,z1)   % mit Bodenkontour
   title('Dies ist ein surface plot');
   xlabel('X-Achse');
   ylabel('Y-Achse');
   zlabel('Funktionswert');
   
subplot(1,2,2) ;
   meshc(x,y,z2);
   title('Dies ist ein mesh plot');
   xlabel('X-Achse');
   ylabel('Y-Achse');
   zlabel('Funktionswert');
% Dann aendere subplot(2,1,...) in subplot(1,2,...) bei beiden Kurven

% --------------------------------
%  plotten mehrerer Funktion in einem Diagramm
subplot(1,1,1) ;
surf(x,y,z1)   % mit Bodenkontour
hold on
meshc(x,y,z2,-z2)
hold off;


