%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                            Michael Pokojovy                             % 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[X, Y] = meshgrid(-2:0.1:2);

figure(1);

set(gcf, 'PaperUnits', 'centimeters');
xSize = 22; ySize = 10;
xLeft = (21 - xSize)/2; yTop = (30 - ySize)/2;
set(gcf,'PaperPosition', [xLeft yTop xSize ySize]);
set(gcf,'Position',[0 0 xSize*50 ySize*50]);

hold on;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(1, 2, 1);
hold on;
t = title('Einschaliges Hyperboloid: $x^2 + y^2 - z^2 = 1$', 'interpreter', 'latex');
set(t, 'FontSize', 16);

N = 20;

r   = linspace(1, 3, N);
phi = linspace(0, 2*pi, N);

X = zeros(N, N);
Y = zeros(N, N);
Z = zeros(N, N);

for i = 1:N
for j = 1:N
    X(i, j) = r(i)*cos(phi(j));
    Y(i, j) = r(i)*sin(phi(j));
    Z(i, j) = sqrt(r(i)^2 - 1);
end
end

surf(X, Y,  Z);
surf(X, Y, -Z);
colormap gray;
view([32 32]);

xlabel('x');
ylabel('y');
zlabel('z');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(1, 2, 2);
hold on;
t = title('Zweischaliges Hyperboloid: $x^2 + y^2 - z^2 = -1$', 'interpreter', 'latex');
set(t, 'FontSize', 16);

r   = linspace(0, 3, N);
phi = linspace(0, 2*pi, N);

for i = 1:N
for j = 1:N
    X(i, j) = r(i)*cos(phi(j));
    Y(i, j) = r(i)*sin(phi(j));
    Z(i, j) = sqrt(r(i)^2 + 1);
end
end

surf(X, Y,  Z);
surf(X, Y, -Z);
colormap gray;
view([32 32]);

xlabel('x');
ylabel('y');
zlabel('z');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%