Animazioni in campo complesso: la funzione esponenziale

Clear["Global`*"]

punti[l_] := Transpose[{Re[l],  Im[l]}]

Commento: prende una lista di numeri complessi e la trasforma in una lista di punti del piano. Esempio:

assi1  =  {Line[{{-2, 0}, {2, 
                0}}], 
Line[{{1, -0.05}, {1, 
                0.05}}], 
Line[{{-0.05, 1}, {0.05, 
                1}}], 
 
          Line[{{0, -4}, {0, 4}}]};

assi2  =  {Line[{{3. , 0}, {11, 
                0}}], 
Line[{{8, -0.05}, {8, 
                0.05}}], 
Line[{{6.95, 1}, {7.05, 1}}],  
          Line[{{7, -4.5}, {7, 4.5}}]};

Funzione esponenziale (a cui viene aggiunta una traslazione):

f[z_] :=  Exp[z] + 7

Famiglia di linee orizzontali:

lxy =  
        Table[Table[
            x   +  I y,  {x, -1.5, 1.5, 
              0.2}], 
{y, -π + π/
                6, π, π/6}];

Famiglia trasformata mediante la funzione f :

funlxy  =  Map[f,  lxy];

Le due liste precedenti trasformate in liste di punti nel piano:

ptlxy  =  Map[punti, lxy];

ptfunlxy  =  Map[punti,  funlxy];

A questo punto abbiamo due liste di punti nel piano.

Prima animazione:

Do[nm1righe = Take[ptlxy, n - 1]; 
nm1frighe = 
        Take[ptfunlxy, n - 1]; 
nriga = 
        ptlxy[[
          n]]; 
fnriga = 
        ptfunlxy[[
          n]]; 
Do[
        Show[Graphics[{assi1, 
              assi2, {RGBColor[1, 0, 0], Line /@ nm1righe, Line /@ nm1frighe, 
                Line[Take[nriga, j]], 
                Line[Take[fnriga, j]]}, {RGBColor[1, 0, 0], PointSize[0.015], 
                Point[nriga[[j]]], 
                Point[fnriga[[j]]]}}], 
          ImageSize -> {450, 300}, AspectRatio -> Automatic, 
          PlotRange -> {{-2, 11.5}, {-4.5, 4.5}}], {j, 1, 
          Length[nriga]}], {n, 1, 12}]

Il grafico finale (non mostrato):

gr1  =  
{assi1, 
          assi2, 
{RGBColor[1, 0, 0], Line /@ ptlxy, 
            Line /@ ptfunlxy}};

Famiglia di linee verticali:

lyx =  
        Table[Table[
            x   +  
              I y, {y, -π, π, π/24}],  {x, -1.5, 1.5, 
            0.5}];

Famiglia trasformata mediante la funzione f :

funlyx  =  Map[f,  lyx];

Le due liste precedenti trasformate in liste di punti nel piano:

ptlyx  =  Map[punti, lyx];

ptfunlyx  =  Map[punti,  funlyx];

Do[nm1colonne = Take[ptlyx, n - 1]; 
nm1fcolonne = 
        Take[ptfunlyx, n - 1]; 
ncolonna = 
        ptlyx[[n]]; 
fncolonna = 
        ptfunlyx[[n]]; 
Do[
        Show[Graphics[{gr1, {RGBColor[0, 0, 1], Line /@ nm1colonne, 
                Line /@ nm1fcolonne, Line[Take[ncolonna, j]], 
                Line[Take[fncolonna, j]]}, {RGBColor[0, 0, 1], 
                PointSize[0.015], 
                Point[ncolonna[[j]]], 
                Point[fncolonna[[
                    j]]]}}], ImageSize -> {450, 300}, 
          AspectRatio -> Automatic, 
          PlotRange -> {{-2, 11.5}, {-4.5, 4.5}}], {j, 1, 
          Length[ncolonna]}], {n, 1, 7}]