%******************************************************************************
% Projekt     : Zeichnet die Juliamenge nach dem Berechnen
% Autor       : Stefan Wicki
% Dateiname   : Julia.m
% Beginndatum : 12.10.03
% Enddatum    : 12.10.03
% Version     : 1.0
%******************************************************************************
%
%******************************************************************************
%
% used functions:     - 
%
% input files:        - 
%
% output files:       - 
%
%******************************************************************************
%
% global variables:   - 
%
%******************************************************************************

clc; clear all; close all; close all hidden;

%------------------------------------------------------------------------------
% Initailisierungen:
%------------------------------------------------------------------------------

% Definition des gebietes in der Komplexen Ebene
Real_Min    =   -1.6;           	%Realteil negativster Punkt
Real_Max    =    1.6;            %Realteil positivster Punkt
Imag_Min    =   -1.2j;           %Imaginärteil negativster Punkt
Imag_Max    =    1.2j;           %Imaginärteil positivster Punkt
											
N_Real      =   200;            	%Anzahl Punkte in x-Richtung (Realteil)
N_Imag      =   200;					%Anzahl Punkte in y-Richtung (Imaginärteil)

GRENZE      =   1e6;            	%Grenze für divergieren
iter        =   30;             	%Anzahl Iterationen



RE=linspace(Real_Min, Real_Max, N_Real);
IM=linspace(Imag_Min, Imag_Max, N_Imag);

%------------------------------------------------------------------------------
% Eingabe Parameter:
%------------------------------------------------------------------------------

cre = input('Geben Sie eine Zahl zwischen -1 und 1 ein (Realteil)! ');
cim = input('Geben Sie eine Zahl zwischen -1 und 1 ein (Imaginärteil)! ');
c=cre+cim*j


%------------------------------------------------------------------------------
% Juliamenge berechnen:
%------------------------------------------------------------------------------

x=RE;
y=imag(IM);
Z=zeros(N_Real,N_Imag);

for k=1:N_Real
   for l=1:N_Imag       
      z=RE(k)+IM(l);       
       for n=1:iter
           z=z^2;
           z=z+c;
           if abs(z)>GRENZE
               break              
           end           
       end
       Z(k,l)=n;       
    end
    
 end
 
figure;
hold off;
contourf(x,y,Z');
axis off;
title([['Konstante c ist '],[num2str(c)]])

figure;
mesh(x,y,Z');    
axis off;
view(-10,70);			%von oben 
title([['Konstante c ist '],[num2str(c)]])


%------------------------------------------------------------------------------
% ENDE
%------------------------------------------------------------------------------