Visualization of complex functions by animation

Douglas N.Arnold, May 2008

Manipulate[Switch[mapchoice, 1, ParametricPlot[
    With[{z$ = r*Exp[I*th]}, Through[
      {Re, Im}[(1 - t)*z$ + t*z$^2]]], {r, 0, 1}, 
    {th, -Pi, Pi}, Mesh -> {5, 10}, ColorFunction -> 
     Function[{x, y, r, th}, Blend[{Hue[th], Black}, 0.2]], 
    BoundaryStyle -> {Black, Thick}, 
    PlotStyle -> Opacity[0.7], PerformanceGoal -> 
     "Quality", PlotRange -> 3/2, GridLines -> 
     {Range[-3/2, 3/2, 1/4], Range[-3/2, 3/2, 1/4]}, 
    GridLinesStyle -> Directive[Thin, Dotted], 
    ImageSize -> {400, 400}], 2, ParametricPlot[
    {With[{z$ = x + I*y}, Through[{Re, Im}[
        (1 - t)*z$ + t*z$^2]]], With[{z$ = -x - I*y}, 
      Through[{Re, Im}[(1 - t)*z$ + t*z$^2]]]}, {x, 0, 1}, 
    {y, 0, 1}, Mesh -> {10, 10}, ColorFunction -> 
     Function[{u, v, x, y}, Blend[{Hue[x], Black}, 0.2]], 
    BoundaryStyle -> {Black, Thick}, 
    PlotStyle -> Opacity[0.7], PerformanceGoal -> 
     "Quality", PlotRange -> 2, GridLines -> 
     {Range[-7/4, 7/4, 1/4], Range[-7/4, 7/4, 1/4]}, 
    GridLinesStyle -> Directive[Thin, Dotted], 
    ImageSize -> {400, 400}], 3, ParametricPlot[
    With[{z$ = x + I*y}, Through[{Re, Im}[
       (1 - t)*z$ + t*Exp[z$]]]], {x, -2, 2}, {y, -Pi, Pi}, 
    Mesh -> {7, 11}, ColorFunction -> 
     Function[{u, v, x, y}, Blend[{Hue[x], Black}, 0.2]], 
    BoundaryStyle -> {Black, Thick}, 
    PlotStyle -> Opacity[0.7], PerformanceGoal -> 
     "Quality", PlotRange -> 8, GridLines -> 
     {Range[-7, 7, 1], Range[-7, 7, 1]}, 
    GridLinesStyle -> Directive[Thin, Dotted], 
    Ticks -> None, ImageSize -> {400, 400}], 4, 
   ParametricPlot[With[{z$ = x + I*y}, 
     Through[{Re, Im}[(1 - t)*z$ + t*Exp[z$]]]], 
    {x, -2, 2}, {y, 0, 2*Pi}, Mesh -> {7, 11}, 
    ColorFunction -> Function[{u, v, x, y}, 
      Blend[{Hue[x], Black}, 0.2]], BoundaryStyle -> 
     {Black, Thick}, PlotStyle -> Opacity[0.7], 
    PerformanceGoal -> "Quality", PlotRange -> 8, 
    GridLines -> {Range[-7, 7, 1], Range[-7, 7, 1]}, 
    GridLinesStyle -> Directive[Thin, Dotted], 
    Ticks -> None, ImageSize -> {400, 400}], 5, 
   ParametricPlot[With[{z$ = x + I*y}, 
     Through[{Re, Im}[(1 - t)*z$ + t*Exp[z$]]]], 
    {x, -2, 2}, {y, -2*Pi, 2*Pi}, Mesh -> {7, 11}, 
    ColorFunction -> Function[{u, v, x, y}, 
      Blend[{Hue[x], Black}, 0.2]], BoundaryStyle -> 
     {Black, Thick}, PlotStyle -> Opacity[0.7], 
    PerformanceGoal -> "Quality", PlotRange -> 8, 
    GridLines -> {Range[-7, 7, 1], Range[-7, 7, 1]}, 
    GridLinesStyle -> Directive[Thin, Dotted], 
    Ticks -> None, ImageSize -> {400, 400}], 6, 
   Show[ParametricPlot[With[{z$ = x + I*y}, 
      Through[{Re, Im}[(1 - t)*z$ + t*((z$^3 - 3*z$^2 - 1)/
           (1 + 3*I))]]], {x, -3/4, 3/4}, {y, -3/4, 3/4}, 
     Mesh -> {23, 23}, ColorFunction -> 
      Function[{u, v, x, y}, Hue[(2*x + y)*(2/9) + 1/2]], 
     ColorFunctionScaling -> False, BoundaryStyle -> 
      {Black}, PlotStyle -> Opacity[0.7], 
     PerformanceGoal -> "Quality", PlotRange -> 3/2, 
     GridLines -> {Range[-3/2, 3/2, 1/4], 
       Range[-3/2, 3/2, 1/4]}, GridLinesStyle -> 
      Directive[Thin, Dotted], RegionFunction -> 
      Function[{u, v, x, y}, Abs[x] > 1/2 && Abs[y] > 1/2], 
     ImageSize -> {400, 400}], ParametricPlot[
     With[{z$ = x + I*y}, Through[{Re, Im}[
        (1 - t)*z$ + t*((z$^3 - 3*z$^2 - 1)/(1 + 3*I))]]], 
     {x, -3/4, 3/4}, {y, -3/4, 3/4}, Mesh -> {23, 23}, 
     BoundaryStyle -> {Black}, PlotStyle -> Opacity[0.1], 
     PerformanceGoal -> "Quality", ColorFunction -> 
      Function[{u, v, x, y}, Black], PlotRange -> 
      {{-3/2, 3/2}, {-3/2, 3/2}}, GridLines -> None, 
     ImageSize -> {400, 400}]]], {{mapchoice, 2, "map"}, 
   {1 -> "f(z)=(z^2) (unit disc)",
    2 -> "f(z)=(z^2) (two squares)",
    3 -> "f(z)=(e^z) ([-2,2]\!\(\*"×"\)[-π,π])",
    4 -> "f(z)=(e^z) ([-2,2]\!\(\*"×"\)[0,2π])",
    5 -> "f(z)=(e^z) ([-2,2]\!\(\*"×"\)[-2π,2π])",
    6 -> "f(z)=(1+3i)^(-1)((z^3)-3(z^2)-1)"
     }}, {{t, 0.}, 0, 1}, ControllerLinking -> True]