% wir animieren die inversion am Kreis
% Dazu wird (delta,1] in [1,1/delta) stetig ueberfuehrt.
% Die Kurven sind dabei Kreissegmente, die in z=1
%   muenden, und mit der linksgerichteten x-achse einen
%   Winkel von phi in [0,pi] einschliessen.

% Die Laenge und Kruemmung des Kreissegments wird dabei stetig 
%   variiert.


figure(1)
clf;
I=sqrt(-1);

nphi=40;      % Anzahl von Bildern
phioffs=0.001; % 
npsi=20;      % anzahl Punkte pro Segment
kmax=1;       % maximale Kruemmung des Kreissegments
delta=1/2;   % Abstand von der 0
p=3;          % Laenge L waechst wie phi^p

% abhaengige Parameter
alpha=1/delta-1+delta;

phi=linspace(phioffs,pi-phioffs,nphi);
kappa=4*kmax*phi/pi.*(1-phi/pi);
L=1-delta+alpha*(phi/pi).^p;
zmid=1+1./kappa.*(-I).*exp(-phi*I);
dpsi=(L.*kappa);
ymax=sin(pi/2-phi+dpsi)./kappa-cos(phi)./kappa
ymax=max(ymax);
for i=1:nphi
    psi0=pi/2-phi(i);
    psi=linspace(psi0,psi0+dpsi(i),npsi);
    z=zmid(i)+exp(I*psi)./kappa(i);
    rho=real(z);
    z=imag(z);
    pphi=linspace(0,2*pi,42);
    [rho3,pphi3]=meshgrid(rho,pphi)
    xx=rho3.*cos(pphi3);
    yy=rho3.*sin(pphi3);
    zz=repmat(z,42,1);
    size(xx)
    size(z)
    surf(xx,yy,zz)
    
    
    
    %plot(z)
    set(gca,'xlim',[-1/delta,1/delta]);
    set(gca,'ylim',[-1/delta,1/delta]);
    set(gca,'zlim',[0,ymax]);
    set(gca,'dataaspectratio',[1 1 1])
    pause(0.1)
end



    
    

