function [x_vec,y_vec]=erzeuge_bakterie(bakt_laenge,bakt_breite, laengen_std,breiten_std,alle_richtungen)
% function [x_vec,y_vec]=erzeuge_bakterie(bakt_laenge,bakt_breite, laengen_std,breiten_std,alle_richtungen)
% Hilfsfunktion fuer Funktion bakteriensimulator
% Ermittelt jeweils x- und y- Indizes fuer eine Bakterie, 
% die im Hauptprogramm an eine dort zufaellig
% bestimmte Position eingefuegt wird
% Eingabeparameter (entsprechend Variablen in bakteriensimulator):
% bakt_laenge: Standardlaenge fuer eine Bakterie
% bakt_breite: Standardbreite fuer eine Bakterie
% laengen_std: Standardabweichung der Laenge (0 wenn Parameter
%     variable_groesse in bakteriensimulater = 0 ist)
% breiten_std: Standardabweichung der breite (0 wenn Parameter
%     variable_groesse in bakteriensimulater = 0 ist)
% alle_richtungen: 1 wenn auch "schiefe" Bakterien zugelassen sind,
%    0 sonst


% Bestimme Groesse der aktuellen Bakterie:
bakt_laenge=bakt_laenge+round(laengen_std*randn(1));
bakt_breite=bakt_breite+round(breiten_std*randn(1));

x_vec=[];  %Initialisierung fuer schraege Bakterien
y_vec=[];

r=rand(1);   % Zufallszahl fuer Richtung

if ~alle_richtungen   % Nur horizontale und vertikale Richtung
    if r>=0.5   %horizontale Ausrichtung
        hilf=1:bakt_laenge;
        x_vec=repmat(hilf,1,bakt_breite);
        hilf=1:bakt_breite;
        y_vec=repmat(hilf',1,bakt_laenge)';
        y_vec=y_vec(:)';
    else %vertikale Ausrichtung
        hilf=1:bakt_laenge;
        y_vec=repmat(hilf,1,bakt_breite);
        hilf=1:bakt_breite;
        x_vec=repmat(hilf',1,bakt_laenge)';
        x_vec=x_vec(:)';
    end
else %auch "schiefe" Bakterien zugelassen:
    if r<=1/6   %horizontale Ausrichtung
        hilf=1:bakt_laenge;
        x_vec=repmat(hilf,1,bakt_breite);
        hilf=1:bakt_breite;
        y_vec=repmat(hilf',1,bakt_laenge)';
        y_vec=y_vec(:)';
    elseif r<=2/6 %vertikale Ausrichtung
        hilf=1:bakt_laenge;
        y_vec=repmat(hilf,1,bakt_breite);
        hilf=1:bakt_breite;
        x_vec=repmat(hilf',1,bakt_laenge)';
        x_vec=x_vec(:)';
    elseif r<=3/6 %diagonal eine Richtung (Laengen sind etwas gepfuscht, so dass es schoener aussieht)
        for z=1:bakt_laenge-2
            x_vec=[x_vec z:z+bakt_breite];
            y_vec=[y_vec z*ones(1,bakt_breite+1)];
        end
    elseif r<=4/6 %diagonal andere Richtung (Laengen sind etwas gepfuscht, so dass es schoener aussieht)
        for z=1:bakt_laenge-2
            x_vec=[x_vec z:z+bakt_breite];
            y_vec=[y_vec -z*ones(1,bakt_breite+1)];             
        end
        elseif r<=5/6 %diagonal andere Richtung
        for z=1:bakt_breite
            x_vec=[x_vec z:z+bakt_laenge-1];
            y_vec=[y_vec z*ones(1,bakt_laenge)];
        end
     else %diagonal andere Richtung
        for z=1:bakt_breite
            x_vec=[x_vec z:z+bakt_laenge-1];
            y_vec=[y_vec -z*ones(1,bakt_laenge)];              
        end
    end
    
end

    
