<< RealTime3D`

f[x_, y_] := Min[Abs[x], Abs[y]];
Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}, Mesh -> False, 
        PlotPoints -> 100];

f[x_, y_] := 
        Sqrt[x^2 + y^2] Sin[3  Arg[x + I y]];
Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}, Mesh -> False, 
        PlotPoints -> 100];

f[x_, y_] := 
        Sqrt[x^2 + y^2] Sin[3  Arg[x + I y]];
Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}, Mesh -> False, 
        PlotPoints -> 100];

f[x_, y_] := x  y;
f1[x_, y_] = D[f[x, y], x];
f2[x_, y_] = D[f[x, y], y];
a = 0;
b = 0;
r = 1;
e =  .05;
g[x_, y_] = 
        f[a, b] + f1[a, b] (x - a) + 
          f2[a, b] (y - b);
h1[x_, y_] := 
        a + e Cos[Pi r  x] Sin[Pi r y];
h2[x_, y_] := 
        b + e Sin[Pi r  x] Sin[Pi r y];
h3[x_, y_] := 
        f[a, b] + e Cos[Pi r y];
ParametricPlot3D[{{x, y, f[x, y]}, {x, y, g[x, y]}, {h1[x, y], 
            h2[x, y], h3[x, y]}}, {x, -r, r}, {y, -r, r}, 
        PlotPoints -> 50, AspectRatio -> Automatic];