%%%%  偏角の原理 argument principle 

clear
close all;
A = 0.1;  %%% 描画範囲 [最小値-A, 最大値+A]

C = 0+0*1i;  %% 円の中心
R = 1.5;     %% 円の半径
Omega = 0:0.01:1;
OC = C + R*exp(2*pi*1i*Omega);  %% 円周

figure   %%%  円周を描く
plot(real(OC), imag(OC),'x');hold on;
plot(real(C), imag(C),'kx');
axis equal;

% F = (OC + 1i).*(OC-0.5)./(OC + 2).*cos(OC);  %%% 式
F = (OC + 1i).*(OC-0.5)./(OC + 2);  %%% 式

FXMax = max([real(F), real(C)]);
FXMin = min([real(F), real(C)]);
FYMax = max([imag(F), imag(C)]);
FYMin = min([imag(F), imag(C)]);

figure(5);
set(5,'Position',[10 10 300 300]);
figure(10);
set(10,'Position',[320 10 400 400]);
for kkk = 1:length(OC);
    figure(5);  %%%  円周
    plot(real(OC(1:kkk)), imag(OC(1:kkk))); hold on;
    plot(real(C), imag(C),'kx');
    plot(real(OC(kkk)), imag(OC(kkk)),'rd');
    hold off;
    xlim([real(C)-R-A, real(C)+R+A]);
    ylim([imag(C)-R-A, imag(C)+R+A]);
%     axis equal;
    figure(10);   %%% 円周の像
    plot(real(F(1:kkk)), imag(F(1:kkk))); hold on;
    plot(real(0), imag(0),'kx');
    plot(real(F(kkk)), imag(F(kkk)),'rd');
    hold off;
    xlim([FXMin-A, FXMax+A]);
    ylim([FYMin-A, FYMax+A]);
    pause(0.1);  %%% 0.1 秒停止
end
    

