%Bogen im Uhrzeigersinn
function G02(s, i_zeile, zeile, j_spalte, spalte, Spaltenaufteilung, killer, dimensionen, X, Y, Z, F, J, I)
startx=X;
starty=Y;
for i_zeile=zeile:1:dimensionen(1)
    
    if killer == 1
        break
    end
    for j_spalte=spalte:1:dimensionen(2)
        leberwurst=1111111111111111111111111
        if killer == 1
            break
        end
        aktuell=Spaltenaufteilung{i_zeile,j_spalte}
        if isempty(aktuell)==0;
            if(strncmpi(aktuell,'F',1)==1);
                F = strsplit(aktuell,'F');
                F=char(F(1,2));
                F=num2str(str2num(F),'%05g');
            end
            if(strncmpi(aktuell,'J',1)==1);
                J = strsplit(aktuell,'J')
                J =char(J(1,2))
                J = str2double(strsplit(aktuell,'J'))
            end
            if(strncmpi(aktuell,'I',1)==1);
                I = strsplit(aktuell,'I')
                I=char(I(1,2))
                I = str2double(strsplit(aktuell,'I'))
                
            end
            if(strncmpi(aktuell,'X',1)==1);
                X = strsplit(aktuell,'X')
                X=char(X(1,2))
                X=num2str(str2num(X),'%05g')
            end
            if(strncmpi(aktuell,'Y',1)==1);
                Y = strsplit(aktuell,'Y');
                Y=char(Y(1,2));
                Y=num2str(str2num(Y),'%05g')
            end
            if(strncmpi(aktuell,'Z',1)==1);
                Z = strsplit(aktuell,'Z');
                Z=char(Z(1,2));
                Z=num2str(str2num(Z),'%05g')
            end
            if(strncmpi(aktuell,'G',1)==1);%Abbruchbedingung
                if(strncmpi(aktuell,'G02',3)==0);
                    killer = 1;
                end
            end
        end
    end
end

kreiszentrum=[startx+I,starty+J];
%Maximale Schrittlänge in mm
schrittlaenge = 0.5
radius=sqrt(I.^2+J.^2)
dphi = schrittlaenge/radius
%Zielpunkt 1 = X-Achse
%Zielpunkt 2 = Y-Achse
%Quadrantensuche Zielpunkt
startquadrant=[-X,-Y]
zielpunkt(1)=X-kreiszentrum(1)
zielpunkt(2)=Y-kreiszentrum(2)
K= zielpunkt(1)-X
L= zielpunkt(2)-Y
winkelkorrektur =90
zielwinkel = 0
class(startquadrant(1))
class(startquadrant(2))

if sign(startquadrant(2))==1
    if sign(startquadrant(1))==-1
        startwinkel = atand(-L/-K);
    end
    if sign(startquadrant(1))==1
        startwinkel=atand(-L/-K)+2*winkelkorrektur;
    end
end
if sign(startquadrant(2))==-1
    if sign(startquadrant(1))==-1
        startwinkel=atand(-L/-K)+ 3*winkelkorrektur;
    end
    if sign(startquadrant(1))==1
        startwinkel=atand(-L/-K)+ winkelkorrektur;
    end
end
if sign(startquadrant(2))==0
    if sign(startquadrant(1))==1
        startwinkel=2*winkelkorrektur;
    else startwinkel=0;
    end
end


% switch {startquadrant(1),startquadrant(2)}
%     %Quadrant 1
%     case sign(startquadrant(2))==-1 && sign(startquadrant(1)==-1)
%         zielwinkel=atand(-L/-K);
%         %Quadrant 4
%     case sign(startquadrant(2))==-1 && sign(startquadrant(1)==1)
%         zielwinkel=atand(-L/-K)+ winkelkorrektur;
%         %Quadrant 2
%     case sign(startquadrant(2))==1 && sign(startquadrant(1)==-1)
%         zielwinkel=atand(-L/-K)+ 3*winkelkorrektur;
%         %Quadrant 3
%     case sign(startquadrant(2))==1 && sign(startquadrant(1)==1)
%         zielwinkel=atand(-L/-K)+2*winkelkorrektur;
%         %Parallel zur X-Achse
%     case sign(startquadrant(2))==0 && sign(startquadrant(1)==1)
%         zielwinkel=2*winkelkorrektur;
% end
%Quadrantensuche Startpunkt
zielquadrant(1)=-I;
zielquadrant(2)=-J;
% startwinkel =300;
% zielwinkel = 210;
counter = 0;

if sign(zielquadrant(2))==1
    if sign(zielquadrant(1))==-1
        zielwinkel=atand(-J/-I)+ 3*winkelkorrektur;
    end
    if sign(zielquadrant(1))==1
        zielwinkel=atand(-J/-I)+2*winkelkorrektur;
    end
end
if sign(zielquadrant(2))==-1
    if sign(zielquadrant(1))==-1
        zielwinkel=atand(-J/-I);
    end
    if sign(zielquadrant(1))==1
        zielwinkel=atand(-J/-I)+ winkelkorrektur;
    end
end
if sign(zielquadrant(2))==0
    if sign(zielquadrant(1))==1
        zielwinkel=2*winkelkorrektur;
    end
end

% switch zielquadrant
%     %Quadrant 1
%     case sign(zielquadrant(2))==-1 && sign(zielquadrant(1)==-1)
%         startwinkel=atand(-J/-I);
%         %Quadrant 4
%     case sign(zielquadrant(2))==-1 && sign(zielquadrant(1)==1)
%         startwinkel=atand(-J/-I)+ winkelkorrektur;
%         %Quadrant 2
%     case sign(zielquadrant(2))==1 && sign(zielquadrant(1)==-1)
%         startwinkel=atand(-J/-I)+ 3*winkelkorrektur;
%         %Quadrant 3
%     case sign(zielquadrant(2))==1 && sign(zielquadrant(1)==1)
%         startwinkel=atand(-J/-I)+2*winkelkorrektur;
%         %Parallel zur X-Achse
%     case sign(zielquadrant(2))==0 && sign(zielquadrant(1)==1)
%         startwinkel=2*winkelkorrektur;
% end
zielwinkel = round (zielwinkel);
while(startwinkel >= zielwinkel)
    schrittwinkel =startwinkel-dphi;
    if schrittwinkel <0
        schrittwinkel = schrittwinkel+360;
    end
    neuX=radius*cosd(schrittwinkel)+kreiszentrum(1);
    neuY=radius*sind(schrittwinkel)+kreiszentrum(2);
    X=neuX;
    Y=neuY;
    startwinkel=schrittwinkel;
    X=num2str(str2double(X),'%05g');
    Y=num2str(str2double(Y),'%05g');
    
    zusenden = ['X',X,'Y',Y,'Z',Z,'F',F,'E'];
    disp(zusenden)
    counter = counter +1
    fprintf(zusenden);
end
