For a map from the plane to itself that may be described by a complex-valued function of a complex variable, the problem has already been solved by David Parks in his Presentations add-on. Specifically, the ComplexMap
function there does what you ask. For example:
<< Presentations`
(* objects in domain to be transformed *)
objects = {
(* two points *)
Red, PointSize[Large], ComplexPoint /@ {1 + I, 1 - I},
(* parameterized vertical segment *)
ComplexCurve[(1 - s) (1 + I) + s (1 - I), {s, 0, 1}, PlotStyle -> Directive[Dashed, Green]],
(* parameterized parabolic arc *)
ComplexCurve[t^2 + t I, {t, -1, 1}, PlotStyle -> Directive[Thick, Blue]]
};
(* draw the objects in the complex domain *)
dom = Draw2D[{objects}, Axes -> True, PlotRange -> 1.5, ImageSize -> Scaled[0.4]];
(* the transformation *)
f[z_] := z^2
(* draw the images of the objects under f *)
img = Draw2D[{objects // ComplexMap[f]}, Axes -> True, PlotRange -> 2.25, ImageSize -> Scaled[0.4]];
(* display both domain and codomain *)
Row[{dom, Spacer[10], img}]

Naturally, the "dirty work" is done behind-the-scenes by ComplexMap
, defined in the add-on. By careful analysis of the definition of ComplexMap
, you could create an analog directly in terms of Cartesian coordinates that would work for any transformation of the form {u,v} = f[{x, y}]
.