VC.07 Transforming 2D Integrals
 BASICS

\(Off[General::spell]; 
Off[General::spell1]; 

    \(Off[ParametricPlot3D::ppcom]; \)\)Off[ParametricPlot::ppcom]; Off[Plot::plnr]; SetOptions[Limit, Analytic -> True];

CMView = {2.7, 1.6, 1.2};

$Pre  =  Chop;

Vector Drawer

BeginPackage["Vector3D`", "Graphics`Colors`"];

\(Axes3D::"usage" = 
      "Axes3D[a, b] creates a Graphics3D object of cartesian axes with x, y, and z running from -a/3 to a, and with axes labels b units beyond the tips of the axes.  Axes3D[a] is Axes3D[a, a/8]."; 

    \(Perpend::"usage" = 
      "Perpend[a] returns a unit vector which is perpendicular to the vector a."; \)\)Arrow::"usage" = 
      "Arrow[a] produces a 2 or 3 dimensional vector from the origin to a. \
Arrow[a, Tail -> tail] gives a vector from tail to a."; Vector::"usage" = 
      "Vector[a, b] gives a 2D or 3D vector from a to b."; ArrowHead::"usage" = 
      "ArrowHead[a, vec] produces an arrowhead with its tip placed at the \
point a, pointing in the direction of the vector vec."; Tail::"usage" = 
      "Tail -> point puts the tail of the vector at point."; Norm::"usage" = 
      "Norm[vec] returns the Euclidean length of vec."; Normalize::"usage" = 
      "Normalize[vec] returns a unit vector in the direction of vec, \
provided vec is nonzero."; Aperture::"usage" = 
      "Aperture is the ratio of the radius of the base to the length of the \
head of a vector."; TipSize::"usage" = 
      "TipSize specifies an absolute size for the inner tip length of the \
head of a vector."; TipRatio::"usage" = 
      "TipRatio is the ratio of the inner length of the arrowhead to the \
length of the shaft of a vector."; HeadRatio::"usage" = 
      "HeadRatio is the ratio of the outer length of the arrowhead to the \
length of the shaft of a vector."; HeadSize::"usage" = 
      "HeadSize specifies an absolute size for the head of a vector."; 
    ScaleFactor::"usage" = 
      "ScaleFactor specifies the amount to scale a vector in length and may \
be either a number or a pure function."; ZeroVectorPointSize::"usage" = 
      "ZeroVectorPointSize is the size of the point used to represent a \
zero vector."; Options[Vector] = 
      Options[Arrow] = 
        Options[ArrowHead] = {HeadRatio -> 0.18, 
            TipRatio -> 0.14, Aperture -> 0.3, 
            ScaleFactor -> 1, HeadType -> Polygon, 
            ShaftQ -> True, EdgesQ -> True, 
            VectorColor -> RGBColor[0, 0, 1], ShaftWidth -> 0.005, 
            ZeroVectorPointSize -> 0.01}; Begin["`Private`"]; SetOptions[ParametricPlot, AspectRatio -> Automatic]; SetOptions[Plot, AspectRatio -> Automatic]; SetOptions[Graphics, AspectRatio -> Automatic]; Axes3D[u_, v_] := 
      Graphics3D[{{Blue, Line[{{-(u/3), 0, 0}, {u, 0, 0}}]}, 
          Text["x", {u + v, 0, 0}], {Blue, 
            Line[{{0, -(u/3), 0}, {0, u, 0}}]}, 
          Text["y", {0, u + v, 0}], {Blue, 
            Line[{{0, 0, -(u/3)}, {0, 0, u}}]}, 
          Text["z", {0, 0, u + v}]}]; Axes3D[u_] := Axes3D[u, (u/8)]; Norm[a_?VectorQ] := N[(Sqrt[a . a])]; Normalize[a_?VectorQ] := If[a . a == 0, a, (a/Norm)[a]]; Perpend[a_?VectorQ] := 
      Normalize[{a[[2]], 
            -a[[1]]}] /; 
        Length[a] == 2Perpend[a_?VectorQ] := 
      Normalize[
          If[a[[1]] == 0, {1, 0, 0}, {0, 
              a[[3]], 
              -a[[2]]}]] /; 
        Length[a] == 3Base3D = 
      Table[{Cos[((2 k π)/8.) ], Sin[((2 k π)/8.) ]}, {k, 0, 
          8}]; Vector[from_?VectorQ, to_?VectorQ, opts___] := 
      Module[{sq, sw, ht, hs, hr, tr, ap, sf, vc, zvps, diff = to - from, 
            tip}, {sq, sw, ht, hs, hr, ts, tr, ap, sf, vc, zvps} = 
            {ShaftQ, ShaftWidth, HeadType, HeadSize, HeadRatio, TipSize, 
                  TipRatio, Aperture, ScaleFactor, VectorColor, 
                  ZeroVectorPointSize} /. {opts} /. Options[Vector]; 
          If[from == to, 
            Return[Graphics[{PointSize[zvps], vc, Point[from]}]]]; 
          diff = If[NumberQ[N[sf]], sf diff, sf[diff]]; tip = from + diff; 
          If[NumberQ[hs], hr = (hs/Norm)[diff]; tr = 0.75 hr]; 
          If[NumberQ[ts], tr = (ts/Norm)[diff]]; 
          Graphics[{
              If[sq, {vc, Thickness[sw], Line[{from, tip - tr diff}]}, {}], 
              With[{trans = ap hr Norm[diff] Perpend[diff]}, {vc, 
                  Thickness[sw], 
                  ht[{tip, tip - hr diff + trans, tip - tr diff, 
                      tip - hr diff - trans, tip}]}]}]] /; 
        Length[from] == Length[to] == 2Vector[from_?VectorQ, to_?VectorQ, opts___] := 
      Module[{sq, eq, sw, hs, hr, tr, ap, sf, vc, zvps, diff = to - from, 
            tip}, {sq, eq, sw, hs, hr, ap, sf, vc, zvps} = 
            {ShaftQ, EdgesQ, ShaftWidth, HeadSize, HeadRatio, Aperture, 
                  ScaleFactor, VectorColor, ZeroVectorPointSize} /. {opts}
                   /. Options[Vector]; 
          If[from == to, 
            Return[Graphics3D[{PointSize[zvps], vc, Point[from]}]]]; 
          diff = If[NumberQ[N[sf]], sf diff, sf[diff]]; tip = from + diff; 
          If[NumberQ[hs], hr = (hs/Norm)[diff]]; tr = (hr/2); 
          Graphics3D[{
              If[sq, {vc, Thickness[sw], Line[{from, tip - tr diff}]}, {}], 
              If[eq, {}, EdgeForm[]], {SurfaceColor[vc], 
                With[{temp = Perpend[diff]}, 
                  (Polygon[Append[#1, tip]]&)/@
                    Partition[
                      (tip - hr diff + #1&)/@
                        ((ap hr Norm[diff] Base3D) . {temp, 
                              Normalize[temp\[Cross]diff]}), 2, 1]]}}]] /; 
        Length[from] == Length[to] == 3Arrow[a_, Tail -> b_, opts___] := Vector[b, a + b, opts]Arrow[a_, opts___] := Vector[Table[0, {Length[a]}], a, opts]\(ArrowHead[a_, b_, opts___] := 
      Vector[a - b, a, ShaftQ -> False, opts]; 

End[]; 

    \(EndPackage[]; \)\)

Graphics`Colors`GosiaGreen = RGBColor[0,  0.392187,  0];

Spherical Setup

\(Clear[polar]; 

    polar[{x_, y_, z_}] := {\@\(x\^2 + y\^2 + z\^2\), ArcTan[y\/x], 
        ArcCos[z\/\@\(x\^2 + y\^2 + z\^2\)]}; 
Clear[X, length]; 

    length[X_] := \@\(X . X\); 
\(rr = 3; \)\)R = 5; scale = 0.8; red = RGBColor[1, 0, 0]; blue = RGBColor[0, 0, 1]; color1 = RGBColor[0.8, 0.2, 0.8]; color2 = RGBColor[0.2, 0.8, 0.2]; black = RGBColor[0, 0, 0]; \(Clear[axes]; 

    axes := Graphics3D[{Line[{X, {1.5\ rr, 0, 0}}], 
          Line[{X, {0, 1.5\ rr, 0}}], Line[{X, {0, 0, 2\ rr}}]}]; 

    Clear[xyplane]; 

    xyplane := 
      Graphics3D[
        Polygon[{{\(-2\)\ rr, \(-2\)\ rr, 0}, {\(-2\)\ rr, 2\ rr, 0}, {2\ rr, 
              2\ rr, 0}, {2\ rr, \(-2\)\ rr, 0}}]]; 
\(X = {0, 0, 0}; \)\)origin = Graphics3D[{black, Point[X]}]; Z = {2, 3, 5}; \(Clear[point]; 

    point := Graphics3D[{red, PointSize[0.03], Point[scale\ Z]}]; 

    \(Z0 = {0, 0, length[0.8\ Z]}; \)\)\(Clear[zpoint]; 
zpoint = Graphics3D[{black, Point[Z0]}]; 

    \(XY = scale\ Z\ {1, 1, 0}; \)\)\(Clear[xypoint]; 
xypoint := Graphics3D[{black, Point[XY]}]; 

    \(X0 = {length[scale\ Z\ {1, 1, 0}], 0, 0}; \)\)xpoint = Graphics3D[{black, Point[X0]}]; Y0 = {0, length[scale Z {1, 1, 0}], 0}; ypoint = Graphics3D[{black, Point[Y0]}]; \(Clear[ray]; 
ray := Graphics3D[{blue, Line[{X, scale\ Z}]}]; 

    Clear[ray1]; 
ray1 := Graphics3D[{color1, Line[{scale\ Z, Z}]}]; 

    Clear[xyray]; 
xyray := Graphics3D[{red, Line[{X, Z\ {1, 1, 0}}]}]; 

    \(rays := {ray, xyray}; \)\)xyaux = 
      (length[0.8 Z] (0.8 Z {1, 1, 0}))/
        length[0.8 Z {1, 1, 0}]; \(Clear[zarc]; 

    zarc = Graphics3D[{blue, 
          Line[Table[
              \(Cos[t]\ \) {0, 0, length[0.8\ Z]} + Sin[t]\ xyaux, {t, 0, 
                \(polar[0.8\ Z]\)[[3
                  ]],  .1}]]}]; 
Clear[zarc1]; 

    zarc1 = Graphics3D[{color1, 
          Line[Table[
              \(Cos[t]\ \) {0, 0, length[0.8\ Z]} + Sin[t]\ xyaux, {t, 
                \(polar[0.8\ Z]\)[[3]], 
                1,  .1}]]}]; 
Clear[zarc2]; 

    zarc2 = Graphics3D[{color1, 
          Line[Table[
              \(Cos[t]\ \) {0, 0, length[0.8\ Z]} + Sin[t]\ xyaux, {t, 
                \(-0.8\), 0,  .1}]]}]; 
Clear[xyarc]; 

    xyarc = Graphics3D[{blue, 
          Line[Table[
              Cos[t]\ X0 + Sin[t]\ Y0, {t, 0, 
                \(polar[XY]\)[[2
                  ]],  .1}]]}]; 
Clear[xyarc1]; 

    xyarc1 = Graphics3D[{color1, 
          Line[Table[Cos[t]\ X0 + Sin[t]\ Y0, {t, \(- .5\), 0,  .1}]]}]; 

    Clear[xyarc2]; 

    xyarc2 = Graphics3D[{color1, 
          Line[Table[
              Cos[t]\ X0 + Sin[t]\ Y0, {t, 
                \(polar[XY]\)[[2]], 
                \(polar[XY]\)[[2]] + 
                  0.3,  .1}]]}]; 
Clear[stick]; 

    stick = Graphics3D[{red, Line[{scale\ Z, XY}]}]; 

    \(xaxislabel = Text["x", {0.363, 0.26}]; \)\)yaxislabel = Text["y", {0.73, 0.3}]; zaxislabel = Text["z", { .5, 0.67}]; stickplot = 
      Show[xyplane, axes, ray, point, Boxed -> False, 
        ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; rho = Text["r", {0.53, 0.45}]; rlabel = 
      Show[xyplane, axes, ray, point, Boxed -> False, 
        ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {rho, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; phi = Text["s", {0.55, 0.57}]; slabel = 
      Show[xyplane, zpoint, axes, ray, point, zarc, zarc1, zarc2, 
        Boxed -> False, ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {phi, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; theta = Text["t", { .5, 0.3}]; tlabel = 
      Show[xyplane, axes, xypoint, xpoint, ray, stick, point, xyarc, xyarc1, 
        xyarc2, Boxed -> False, ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {theta, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity]; all = 
      Show[xyplane, axes, ray, stick, point, zpoint, xpoint, xypoint, xyarc, 
        xyarc1, xyarc2, zarc, zarc1, zarc2, Boxed -> False, 
        ViewPoint -> {2.747, 1.594, 1.168}, 
        Epilog -> {theta, phi, rho, xaxislabel, yaxislabel, zaxislabel}, 
        DisplayFunction -> Identity];

Crisscross

\(Clear[x]; 

    crisscross = 
      Plot[{Cos[x], Sin[x]}, {x, π\/8, \(3\ π\)\/8}, 
        PlotStyle -> {{RGBColor[1, 0, 0], Thickness[0.02]}}, 
        Axes -> None, AspectRatio -> 1\/3, 
        DisplayFunction -> Identity]; \)

B.1)  uv-paper and xy-paper

Here's a part of the usual xy-paper grid:

\(Clear[x, y]; 
{xlow, xhigh} = {0, 6}; 
\({ylow, yhigh} = {0, 5}; 
    \)\)xygrid = 
      Show[Table[Graphics[Line[{{xlow, y}, {xhigh, y}}]], {y, ylow, yhigh}], 
        Table[Graphics[Line[{{x, ylow}, {x, yhigh}}]], {x, xlow, xhigh}], 
        Axes -> True, AxesLabel -> {"x", "y"}];

As you well know, y is constant on the horizontal lines, and x is constant on the vertical lines. 
If you want to locate a point like {3, 2}, you can do it by going to the point at which the grid lines 
       x = 3 and y = 2
cross each other:

point = {3, 2}; Show[xygrid, Graphics[{Red, PointSize[0.03], Point[point]}]];

This isn't the only way to locate the point {3, 2}. 
You can go with:

\(Clear[u, v, x, y]; 
{u[x_, y_], v[x_, y_]} = {x\^2 - y\^2, x\ y}\)

And you can say that the point {3, 2} is the point at which the level curves 
       u[x, y] = u[3, 2] and v[x, y] = v[3, 2]
cross each other:

ulevelcurve = 
      ContourPlot[Evaluate[u[x, y]], {x, xlow, xhigh}, {y, ylow, yhigh}, 
        Contours -> {u[3, 2]}, ContourShading -> False, 
        DisplayFunction -> Identity]; vlevelcurve = 
      ContourPlot[Evaluate[v[x, y]], {x, xlow, xhigh}, {y, ylow, yhigh}, 
        Contours -> {v[3, 2]}, ContourShading -> False, 
        DisplayFunction -> Identity]; \(uvlevelcurves = Show[ulevelcurve, vlevelcurve, Frame -> False]; 

    
Show[uvlevelcurves, Graphics[{Red, PointSize[0.03], Point[{3, 2}]}], 
      Axes -> True, AxesLabel -> {"x", "y"}, PlotRange -> All, 
      DisplayFunction -> $DisplayFunction]; \)

You can plot a whole grid of level curves of u[x, y] and v[x, y]:

ulevelcurves = 
      ContourPlot[Evaluate[u[x, y]], {x, xlow, xhigh}, {y, ylow, yhigh}, 
        Contours 
          -> {-15, -10, -5, 0, 5, 10, 15, 20, 25, 30}, 
        ContourShading -> False, DisplayFunction -> Identity]; 
    vlevelcurves = 
      ContourPlot[Evaluate[v[x, y]], {x, xlow, xhigh}, {y, ylow, yhigh}, 
        Contours -> {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, 
        ContourShading -> False, DisplayFunction -> Identity]; 
    \(uvGridonxyPaper = 
      Show[ulevelcurves, vlevelcurves, Frame -> False]; 


    Show[uvGridonxyPaper, Axes -> True, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

Totally cool.
As above, you can locate the point {3, 2} on xy-paper as the point where the level curves 
       u[x, y] = u[3, 2], and 
       v[x, y] = v[3, 2] 
cross each other:

Show[uvGridonxyPaper, 
      Graphics[{Red, PointSize[0.03], Point[{3, 2}]}], Axes -> True, 
      AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction];

Or you can locate the point {4, 4} on xy-paper as the point where the level curves 
       u[x, y] = u[4, 4], and 
       v[x, y] = v[4, 4] 
cross each other:

Show[uvGridonxyPaper, 
      Graphics[{Red, PointSize[0.03], Point[{4, 4}]}], Axes -> True, 
      AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction];

Play.

B.1.a.i)

Continue to go with the u[x, y] and v[x, y] above. 
What do folks mean when they talk about the uv-coordinates of a point with xy-coordinates {x, y}?

That's easy. 
The uv-coordinates of a point with xy-coordinates {x, y} are:

{u[x, y], v[x, y]}

For instance, the uv-coordinates of the point with xy-coordinates {3, 1} are:

{u[3, 1], v[3, 1]}

In other words, the level curves 
       u[x, y] = 8 and v[x, y] = 3 
cross at the point {x, y} = {3, 1}.
Not a whole lot to it.

B.1.a.ii)

How do you make uv-paper?

Answer:

With a little imagination and a good graphics system like Mathematica.
To see how little is involved, look at the uv-grid on xy-paper and imagine the plot to be made on a rubber sheet:

Show[uvGridonxyPaper, Axes -> True, 
      AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction];

What you see on the rubber sheet are the level curves
       u[x, y] = k 
for k = -15, -10, -5, 0, 5, 10, 15, 20, 25, and 30, and 
       v[x, y] = c 
for c = 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, and 20.
To make uv-paper, stretch and compress the rubber sheet so that all of the curves u[x, y] = k and v[x, y] = c become straight lines crossing perpendicularly.
Then apply new axes corresponding to the curves v[x, y] = 0 and u[x, y] = 0. 
Here's what you get:

{ulow, uhigh, ujump} = {-15, 30, 5}; {vlow, vhigh, vjump} = {0, 20, 2}; uvgrid = 
      Show[Table[
          Graphics[Line[{{ulow, v}, {uhigh, v}}]], {v, vlow, vhigh, vjump}], 
        Table[Graphics[Line[{{u, vlow}, {u, vhigh}}]], {u, ulow, uhigh}], 
        Axes -> True, AxesLabel -> {"u", "v"}];

This shows off the advantage of plotting on uv-paper; the hard-to-handle curved uv-grid on xy-paper becomes an easily dealt with grid of straight lines on uv-paper. 
A little imagination and Mathematica will take you a long way.

B.1.a.iii)

Continue to use 
       u[x, y] = (x^2) -  (y^2), and 
       v[x, y] = x y.
How does the hyperbola y=(2/x) plot out on uv-paper?
How does the hyperbola (x^2) -  (y^2) = 4 plot out on uv-paper?
How does the circle (((x - 1))^2) +  (y^2) = 1 plot out on uv-paper?

\(Clear[u, v, x, y]; 
u[x_, y_] = x\^2 - y\^2\)

v[x_, y_] = x y

-> uv-paper plot of y=(2/x):
A parametric equation of the hyperbola y=(2/x) is:

\(Clear[x, y, t]; 
{x[t_], y[t_]} = {t, 2\/t}\)

Here's part of this hyperbola on xy-paper:

ParametricPlot[{x[t], y[t]}, {t, (2/5), 5}, 
      PlotStyle -> {{Thickness[0.01], Red}}, 
      AxesLabel -> {"x", "y"}, 
      Epilog -> Text["xy-paper plot", {3, 3}]];

The xy-paper point 
       {x[t], y[t]} 
plots out on uv-paper at the uv-paper point   
       {u[x[t], y[t]], v[x[t], y[t]]}.
Here's the uv-paper plot of the same part of the hyperbola  
       y=(2/x) 
plotted above on xy-paper:

ParametricPlot[{u[x[t], y[t]], v[x[t], y[t]]}, {t, (2/5), 5}, 
      PlotStyle -> {{Thickness[0.01], Red}}, PlotRange -> {1, 3}, 
      AxesLabel -> {"u", "v"}, AspectRatio -> 1, 
      Epilog -> Text["uv-paper plot", {10, 2.5}]];

Gee whiz.
The hyperbola y=(2/x) plots out as the line v = 2. 
This is no accident because the hyperbola 
       y=(2/x) 
is the level curve 
       x y = 2 
and this is the same as the level curve 
       v[x, y] = x y = 2. 
When you stretched the xy-paper into uv-paper, this level curve became the line v = 2.
-> uv-paper plot of (x^2) -  (y^2) = 4:
You don't need the machine to say how this looks on uv-paper. 
When you remember that 
       u[x, y] = (x^2) -  (y^2), 
you see that the hyperbola 
       (x^2) -  (y^2) = 4 
plots out on uv-paper on the line 
       u = 4.

-> uv-paper plot of (((x - 1))^2) +  (y^2) = 1:
A parametric equation of the circle (((x - 1))^2) +  (y^2) = 1 is:

\(Clear[x, y, t]; 
{x[t_], y[t_]} = {1, 0} + {Cos[t], Sin[t]}\)

Here's this circle on xy-paper in true scale:

ParametricPlot[{x[t], y[t]}, {t, 0, 2 π}, 
      PlotStyle -> {{Thickness[0.01], Red}}, 
      AxesLabel -> {"x", "y"}, AspectRatio -> Automatic, 
      Epilog -> Text["xy-paper plot", {0.7, 0.7}]];

The xy-paper point 
       {x[t], y[t]} 
plots out on uv-paper at the uv-paper point   
       {u[x[t], y[t]], v[x[t], y[t]]}.
Here's the true scale uv-paper plot of the circle 
       (((x - 1))^2) +  (y^2) = 1:

ParametricPlot[{u[x[t], y[t]], v[x[t], y[t]]}, {t, 0, 2 π}, 
      PlotStyle -> {{Thickness[0.01], Red}}, 
      AxesLabel -> {"u", "v"}, AspectRatio -> Automatic, 
      Epilog -> Text["uv-paper plot", {1.5, 0.5}]];

Buns.
When you stretched and compressed the original rubber xy-paper to make the uv-paper, the circle got squashed. 
The cusp (corner) at {0, 0} is hard to ignore; you'll find why it happened in one of the GiveItaTry problems.

B.1.b.i)

Often you'll want to start with uv-paper and go to xy-paper.  Here's an example involving polar parameterization:
Go with the uv-paper rectangle, 1 ≤ u ≤ 5 and 0 ≤ v ≤ π:

uvpaperplot = 
      Show[Graphics[{Thickness[0.01], Line[{{1, 0}, {5, 0}}]}], 
        Graphics[{Blue, Thickness[0.01], Line[{{5, 0}, {5, π}}]}], 
        Graphics[{Thickness[0.01], Line[{{5, π}, {1, π}}]}], 
        Graphics[{Red, Thickness[0.01], Line[{{1, π}, {1, 0}}]}], 
        Graphics[Text["uv-paper plot", {3, (π/2)}]], 
        AspectRatio -> Automatic, Axes -> True, 
        AxesLabel -> {"u", "v"}];

Go to xy-paper with the polar functions 
       x[u, v] = u Cos[v] and y[u, v] = u Sin[v] 
and plot this rectangle on xy-paper.

\(Clear[x, y, u, v]; 
    
{x[u_, v_], y[u_, v_]} = {u\ Cos[v], u\ Sin[v]}\)

The bottom side of the rectangle runs with 
       1 ≤ u ≤ 5 and v = 0:

xybottom = 
      ParametricPlot[{x[u, 0], y[u, 0]}, {u, 1, 5}, 
        PlotStyle -> {{Thickness[0.01]}}, AxesLabel -> {"x", "y"}];

The right side of the rectangle runs with 
       u = 5 and 0 ≤ v ≤ π:

xyright = 
      ParametricPlot[{x[5, v], y[5, v]}, {v, 0, π}, 
        PlotStyle -> {{Blue, Thickness[0.01]}}, 
        AxesLabel -> {"x", "y"}];

The top side of the rectangle runs with 
     1 ≤ u ≤ 5 and v = π:

xytop = 
      ParametricPlot[{x[u, π], y[u, π]}, {u, 1, 5}, 
        PlotStyle -> {{Thickness[0.01]}}, AxesLabel -> {"x", "y"}];

The left side of the rectangle runs with 
     u = 1 and 0 ≤ v ≤ π:

xyleft = 
      ParametricPlot[{x[1, v], y[1, v]}, {v, 0, π}, 
        PlotStyle -> {{Red, Thickness[0.01]}}, 
        AxesLabel -> {"x", "y"}];

Here they are all assembled:

xypaperplot = 
      Show[xybottom, xyright, xytop, xyleft, 
        Graphics[Text["xy-paper plot", {1.5, 3}]], 
        AspectRatio -> Automatic, AxesLabel -> {"x", "y"}];

Half a donut.

B.1.b.ii)

How does this bear on the topic of double integrals?

It's sometimes handier than a can opener.  You'll see why later, but just to whet your appetite, ask yourself this:
If you are setting up a double integral over a region R, would you prefer R to look like this:

Show[xypaperplot];

Or this:

Show[uvpaperplot];

This lesson is all about the art of replacing ornery regions by rectangles.
Go on and enjoy.

B.2)  Linearizing the grids

B.2.a.i)

Here is a microscopic plot of part of the  xy-grid coming from 
       x[u, v] = (u^2) - (v^2) and y[u, v] = u v
in the vicinity of the uv-paper point 
       {a, b} = {2.1, 1.5} 
plotted on uv-paper:

{a, b} = {2.1, 1.5}; jump = 0.02; \(Clear[u, v, h, x, y]; 
{x[u_, v_], y[u_, v_]} = {u\^2 - v\^2, u\ v}; 

    \(xlevelcurves = 
      ContourPlot[
        Evaluate[x[u, v]], {u, a - jump, a + jump}, {v, b - 2\ jump, 
          b + 2\ jump}, 
        Contours -> 
          Table[x[a, b] + h, {h, \(-5\)\ jump, 5\ jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    \)\)ylevelcurves = 
      ContourPlot[
        Evaluate[y[u, v]], {u, a - jump, a + jump}, {v, b - 2 jump, 
          b + 2 jump}, 
        Contours -> 
          Table[y[a, b] + h, {h, -5 jump, 5 jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    \(xyGridonuvPaper = 
      Show[xlevelcurves, ylevelcurves, Frame -> False]; 


    Show[xyGridonuvPaper, Graphics[{Red, PointSize[0.03], Point[{a, b}]}], 
      Axes -> True, AxesLabel -> {"u", "v"}, 
      DisplayFunction -> $DisplayFunction]; \)

Here's the same thing for the linearizations of x[u, v] and y[u, v] at the same point {a, b}.

\(Clear[linearx, lineary, gradx, grady]; 

    gradx[u_, v_] = {D[x[u, v], u], D[x[u, v], v]}; 

    grady[u_, v_] = {D[y[u, v], u], D[y[u, v], v]}; 

    linearx[u_, v_] = Expand[x[a, b] + gradx[a, b] . {u - a, v - b}]\)

lineary[u_, v_] = Expand[y[a, b] + grady[a, b] . {u - a, v - b}]

linearxlevelcurves = 
      ContourPlot[
        Evaluate[linearx[u, v]], {u, a - jump, a + jump}, {v, b - 2 jump, 
          b + 2 jump}, 
        Contours -> 
          Table[linearx[a, b] + h, {h, -5 jump, 5 jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    linearylevelcurves = 
      ContourPlot[
        Evaluate[lineary[u, v]], {u, a - jump, a + jump}, {v, b - 2 jump, 
          b + 2 jump}, 
        Contours -> 
          Table[lineary[a, b] + h, {h, -5 jump, 5 jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    \(linearxyGridonuvPaper = 
      Show[linearxlevelcurves, linearylevelcurves, Frame -> False]; 


    Show[linearxyGridonuvPaper, 
      Graphics[{Red, PointSize[0.03], Point[{a, b}]}], Axes -> True, 
      AxesLabel -> {"u", "v"}, 
      DisplayFunction -> $DisplayFunction]; \)

Compare:

Show[xyGridonuvPaper, linearxyGridonuvPaper, 
      Graphics[{Red, PointSize[0.03], Point[{a, b}]}], Axes -> True, 
      AxesLabel -> {"u", "v"}, 
      DisplayFunction -> $DisplayFunction];

In this microscopic plot of the vicinity of {a, b}, the xy-grid on uv-paper is almost the same as the grid coming from the linearized versions of x[u, v] and y[u, v] at {a, b}.
Explain why:
You will see similar results no matter what the functions x[u, v] and y[u, v] are, and no matter what point {a, b} you go with (unless {a, b} is a singularity for x[u, v] or y[u, v]).

Way back, you remember learning that the linearized version of any function x[u, v] (respectively y[u, v]) at {a, b} is a superb approximation of x[u, v] (respectively y[u, v]) in the vicinity of {a, b}.
That's why the grid coming from the linearized versions of x[u, v] and y[u, v] at {a, b} has to mimic the xy-grid so well near the point {a, b}. 
In fact, the closer you get to {a, b}, the better the approximation.
Watch it happen for new functions 
       x[u, v] = u Cos[v], and 
       y[u, v] = 2  u Sin[v],
and a new point {a, b} = {2.5, -0.7}:

{a, b} = {2.5, -0.7}; jump = 0.02; \(Clear[u, v, h, x, y]; 
    
{x[u_, v_], y[u_, v_]} = {u\ Cos[v], 2\ u\ Sin[v]}; 

    \(xlevelcurves = 
      ContourPlot[
        Evaluate[x[u, v]], {u, a - jump, a + jump}, {v, b - 2\ jump, 
          b + 2\ jump}, 
        Contours -> 
          Table[x[a, b] + h, {h, \(-5\)\ jump, 5\ jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    \)\)ylevelcurves = 
      ContourPlot[
        Evaluate[y[u, v]], {u, a - jump, a + jump}, {v, b - 2 jump, 
          b + 2 jump}, 
        Contours -> 
          Table[y[a, b] + h, {h, -5 jump, 5 jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    xyGridonuvPaper = 
      Show[xlevelcurves, ylevelcurves, Frame -> False]; \(Clear[linearx, lineary, gradx, grady]; 

    gradx[u_, v_] = {D[x[u, v], u], D[x[u, v], v]}; 

    grady[u_, v_] = {D[y[u, v], u], D[y[u, v], v]}; 

    linearx[u_, v_] = Expand[x[a, b] + gradx[a, b] . {u - a, v - b}]; 

    \(lineary[u_, v_] = Expand[y[a, b] + grady[a, b] . {u - a, v - b}]; 
    \)\)linearxlevelcurves = 
      ContourPlot[
        Evaluate[linearx[u, v]], {u, a - jump, a + jump}, {v, b - 2 jump, 
          b + 2 jump}, 
        Contours -> 
          Table[linearx[a, b] + h, {h, -5 jump, 5 jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    linearylevelcurves = 
      ContourPlot[
        Evaluate[lineary[u, v]], {u, a - jump, a + jump}, {v, b - 2 jump, 
          b + 2 jump}, 
        Contours -> 
          Table[lineary[a, b] + h, {h, -5 jump, 5 jump, jump}], 
        ContourShading -> False, DisplayFunction -> Identity]; 
    \(linearxyGridonuvPaper = 
      Show[linearxlevelcurves, linearylevelcurves, Frame -> False]; 


    Show[xyGridonuvPaper, linearxyGridonuvPaper, 
      Graphics[{Red, PointSize[0.03], Point[{a, b}]}], Axes -> True, 
      AxesLabel -> {"u", "v"}, 
      DisplayFunction -> $DisplayFunction]; \)

Lookin' good; especially good near {a, b}.
Play with other functions x[u, v] and y[u, v], and other points {a, b}.

B.2.b)

Summarize.

The gist:
-> Near a uv-paper point {a, b}, xy-paper plots look the same as plots on linearxlineary-paper. The closer you get to {a, b}, the better the linear grid approximates the curved grid.
-> The linearxlineary-grid on uv-paper is always a bunch of parallelograms in much the same way that the xy-grid on xy-paper is a bunch of rectangles.

B.3)  Transforming 2D integrals: How you do it and why you do it

B.3.a) The instantanteous area conversion factor (Subscript[A, xy])[u, v]

Knowing that
       (∫_( x[a])^( x[b]))f[x] dx=(∫_( a)^( b))f[x[u]]x'[u]du 
is a mark of calculus literacy. 
But without the fudge function 
       fudge[u]=x'[u],
the transformation fails.
In the two-variable case, when you use functions x[u, v] and and y[u, v] to go from integrating on xy-paper to integrating on uv-paper, you've got to come up with the fudge function, fudge[u, v], that makes
       (∫_^)(∫_( (Subscript[R, xy])))f[x, y] 
            dx dy 
        = 
        (∫_^)(∫_( 
              (Subscript[R, uv])))f[x[u, v], y[u, v]] fudge[u, v] du 
              dv
where (Subscript[R, uv]) is the uv-paper plot of the region  (Subscript[R, xy]) orginally plotted on  xy-paper.
What is the physical meaning of this function
       fudge[u, v]?

The function fudge[u, v] has to satisfy
       (∫_^)(∫_( (Subscript[R, xy])))f[x, y] 
            dx dy 
        = 
        (∫_^)(∫_( 
              (Subscript[R, uv])))f[x[u, v], y[u, v]] fudge[u, v] du 
              dv.
No matter what f[x, y] you have.
You get a pregnant clue to the physical meaning of fudge[u, v] by taking 
       f[x, y] = 1.  
For this particular f[x, y], you get
       (∫_^)(∫_( 
              (Subscript[R, xy])))dx dy = 
        (∫_^)(∫_( (Subscript[R, uv])))fudge[u, v] 
              du dv.
Put Area[(Subscript[R, xy])] equal to the area of (Subscript[R, xy]) measured on  xy-paper and realize that this equation means that
       Area[(Subscript[R, xy])] = 
        (∫_^)(∫_( 
                (Subscript[R, xy])))dx dy = 
          (∫_^)(∫_( (Subscript[R, uv])))fudge[u, v] 
                du dv.
If you make the measurements on uv-paper, then 
     Area[(Subscript[R, uv])] = 
        (∫_^)(∫_( 
              (Subscript[R, uv])))du dv.
So fudge[u, v] must be the instantanteous area conversion factor that you integrate to convert uv-paper area measurements into xy-paper area measurements. 
You could say that the fudge[u, v] is the derivative of xy-paper area with repect to uv-paper area.
To dignify the fudge[u, v], give it a fancy look by writing 
       (Subscript[A, xy])[u, v] = fudge[u, v].
Name it by calling (Subscript[A, xy])[u, v] the area conversion factor because it converts uv-paper area measurements into xy-paper area measurements.

B.3.b) The formula for the area conversion factor (Subscript[A, xy])[u, v]

Now go for the throat.
The formula for the area conversion factor (Subscript[A, xy])[u, v] that you integrate to convert uv-paper area measurements to xy-paper area measurements is:

\(Clear[x, y, u, v, gradx, grady, Axy]; 

    gradx[u_, v_] = {D[x[u, v], u], D[x[u, v], v]}; 

    grady[u_, v_] = {D[y[u, v], u], D[y[u, v], v]}; 

    Axy[u_, v_] = Abs[Det[{gradx[u, v], grady[u, v]}]]\)

Where does this beauty come from?

Ultimately, it comes from the cross product.
Start with
       x = x[u, v], and 
       y = y[u, v].
At a fixed uv-paper  point {a, b}, the linearized versions of x[u, v] and y[u, v] are calculated as follows:

\(Clear[x, y, u, v, a, b, gradx, grady, linearx, lineary]; 

    gradx[u_, v_] = {D[x[u, v], u], D[x[u, v], v]}; 

    grady[u_, v_] = {D[y[u, v], u], D[y[u, v], v]}; 

    linearx[u_, v_] = x[a, b] + gradx[a, b] . {u - a, v - b}\)

lineary[u_, v_] = y[a, b] + grady[a, b] . {u - a, v - b}

Remember from B.2:
On uv-paper, the closer you are to {a, b}, the more spectacularly the xy-grid is approximated by the linearxlineary-grid. As a result, at the point {a, b}, the two area conversion factors are the same; in other words 	 
       (Subscript[A, xy])[a, b] = (Subscript[A, linearxlineray])[a, b].
Now calculate (Subscript[A, linearxlineray])[a, b]:
To do this, remember that the linear grid is a bunch of parallelograms.  For this reason, the uv-paper square with corners at 
       {a, b}, {a +  h, b}, {a +  h, b +  h} and {a, b +  h} 
plots out on linearxlineary-paper as the parallelogram with corners at:

\(Clear[h]; 
basepoint = {linearx[a, b], lineary[a, b]}; 

    \(corner1 = {linearx[a + h, b], lineary[a + h, b]}; \)\)corner2 = {linearx[a + h, b + h], lineary[a + h, b + h]}; corner3 = {linearx[a, b + h], lineary[a, b + h]};

The area of this parallelogram is given by the absolute value of:

The area of the parallelogram determined by any vectors X and Y with their tails at a common base point is 
       ‖X‖ 
        ‖Y‖ 
        |Sin[angle between]|
which is the same as the length of the base times the perpendicular height.  To understand the calculation, put everything in three dimensions as follows:

\(Clear[X, x, Y, y]; 
X = {x[1], x[2]}\)

X3D = {x[1], x[2], 0}

Y = {y[1], y[2]}

Y3D = {y[1], y[2], 0}

Note:

(Sqrt[X . X]) == (Sqrt[X3D . X3D])

(Sqrt[Y . Y]) == (Sqrt[Y3D . Y3D])

This confirms that ‖X‖ = 
        ‖X3D‖ and ‖Y‖ = 
        ‖Y3D‖.  So
       area = 
        ‖X‖ 
          ‖Y‖ 
          |Sin[angle between]| 
        = 
        ‖X3D‖ 
          ‖Y3D‖ 
          |Sin[angle between]|.
Now look at:

X3DcrossY3D = Cross[X3D, Y3D]

Expand[(((X3D . Y3D))^2) + X3DcrossY3D . X3DcrossY3D]

Expand[X3D . X3D Y3D . Y3D]

Remembering that 
       (((X3D . Y3D))^2) = 
        ‖X3D(‖^2) 
          ‖Y3D(‖^2) 
          Cos[angle between]^2, 
you can see from the calculations immediately above that
       ‖X3D(‖^2) 
          ‖Y3D(‖^2) 
          Cos[angle between]^2 +  
        ‖X3D×Y3D(‖^2)
          
        = 
        ‖X3D(‖^2) 
          ‖Y3D(‖^2).
So 
       ‖X3D×Y3D
              (‖^2) = 
        ‖X3D(‖^2) 
          ‖Y3D(‖^2) 
          (1 -  Cos[angle between]^2)
        = 
        ‖X3D(‖^2) 
          ‖Y3D(‖^2) 
          Sin[angle between]^2
Consequently,
       ‖X3D×Y3D‖ = 
        ‖X3D‖ 
          ‖Y3D‖ 
          |Sin[angle between]|
        = area of parallelogram determined by X and Y.
End of explanation.

X = corner1 - basepoint; Y = corner3 - basepoint; X3D = Append[X, 0]; Y3D = Append[Y, 0]; \(X3DcrossY3D = Cross[X3D, Y3D]; 

    AreaofParallelogram = 
      √Collect[Expand[X3DcrossY3D . X3DcrossY3D], h\^4]\)

The original uv-paper square with corners at 
       {a, b}, {a +  h, b}, {a +  h, b +  h}, {a, b +  h} 
has area measuring out to (h^2). 
So the area conversion factor
       (Subscript[A, xy])[a, b] = (Subscript[A, linearxlineary])[a, b]
is given by the absolute value of:

Simplify[(AreaofParallelogram/(h^2))]

Not so bad because this is the same as the absolute value of:

Det[{gradx[u, v], grady[u, v]}] /. {u -> a, v -> b}

And now you see why the area conversion factor
       (Subscript[A, xy])[u, v]
is nothing more than the absolute value of:

Det[{gradx[u, v], grady[u, v]}]

B.3.c.i)

Now you get a chance to use this good stuff:
The region (Subscript[R, xy]) is everything inside and on the ellipse
     ((((x/3)))^2)+ (y^2)=1 
on xy-paper:

\(Clear[x, y, t]; 
{x[t_], y[t_]} = {3\ Cos[t], Sin[t]}; 

    \(ParametricPlot[{x[t], y[t]}, {t, 0, 2\ π}, 
      PlotStyle -> {{Thickness[0.01], Red}}, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      Epilog -> 
        Text[StyleForm["\!\(R\_xy\)", FontSize -> 16], {1, 0.5}]]; 
    \)\)

Calculate
       (∫_^)(∫_( 
            (Subscript[R, xy])))((x^2) +  (y^2)) dx 
            dy
by transforming the integral to new variables u and v.

You can describe the ellipse and everything inside it by writing
       {3  u Cos[v], u Sin[v]} 
with 0 ≤ u ≤ 1 and 0 ≤ v ≤ 2  π.
Put 
       x[u, v] = 3  u Cos[v], and 
       y[u, v] = u Sin[v]:

\(Clear[x, y, u, v]; 
    
{x[u_, v_], y[u_, v_]} = {3\ u\ Cos[v], u\ Sin[v]}\)

\(Clear[gradx, grady, Axy]; 

    gradx[u_, v_] = {D[x[u, v], u], D[x[u, v], v]}; 

    grady[u_, v_] = {D[y[u, v], u], D[y[u, v], v]}; 

    Axy[u_, v_] = TrigExpand[Det[{gradx[u, v], grady[u, v]}]]\)

Because 0 ≤ u ≤ 1 and 0 ≤ v ≤ 2  π, the uv-paper plot, (Subscript[R, uv]), of (Subscript[R, xy]) is the rectangle with corners at 
       {0, 0}, {1, 0}, {1, 2  π}, and {0, 2  π},
and everything inside it:

Show[
      Graphics[{Red, Thickness[0.01], 
          Line[{{0, 0}, {1, 0}, {1, 2 π}, {0, 2 π}, {0, 0}}]}], 
      Graphics[Text["\!\(R\_uv\)", {0.9, 1}]], Axes -> True, 
      AxesLabel -> {"u", "v"}, AspectRatio -> (1/2)];

This gives
       (∫_^)(∫_( 
            (Subscript[R, xy]))^)((x^2) +  (y^2))  dx 
            dy
        = 
        (∫_^)(∫_( 
              (Subscript[R, uv]))^)(x[u, v]^2 +  y[u, v]^2) (Subscript[A, xy])[u, v] 
              du dv
         = 
        (∫_0
            ^( 2  π))(∫_0^)1
              (x[u, v]^2 +  y[u, v]^2) (Subscript[A, xy])[u, v] du 
              dv:

(∫_0
        ^(2 π))(∫_0^1)
          (x[u, v]^2 + y[u, v]^2) Axy[u, v] \[DifferentialD]u 
          \[DifferentialD]v

So:
       (∫_^)(∫_( 
              (Subscript[R, xy]))^)((x^2) +  (y^2))  dx 
              dy = ((15 π)/2), 
and you're out of here without sweating and without a lot of miserable, irritating algebra.

B.3.c.ii)

Look at the region (Subscript[R, xy]) inside the boundary described by the curves 
     y = 0.8  x, y = 0.8  x +  0.5 , 
     x y = 0.2, and x y = 0.6:

Plot[{0.8 x, 0.8 x + 0.5, (0.2/x), (0.6/x)}, {x, 0.25, 0.9}, 
      PlotStyle -> {{Red, Thickness[0.01]}}, 
      PlotRange -> {0.37, 1.0}, AxesLabel -> {"x", "y"}, 
      Epilog -> 
        Text[StyleForm["\!\(R\_xy\)", FontSize -> 16], {0.6, 0.9}]];

The region (Subscript[R, xy]) you  are looking at is that stylish four-cornered figure you see above and everything inside it.  Don't worry about the stray ends.
Calculate
       (∫_^)(∫_( (Subscript[R, xy]))^) x 
            (y^2) dx dy
without a lot of weeping, wailing, and gnashing of teeth by transforming the integral to new variables u and v.

This is a real bastard to calculate without leaving xy-paper because this integral will have to be broken into three integrals with lots of weeping, wailing, and gnashing of teeth. 
But this is a great set-up for transforming to an integral easily set up on uv-paper.
The (Subscript[R, xy]) region has its boundary formed by the curves 
     y = 0.8  x, y = 0.8  x +  0.5 , 
     x y = 0.2, and x y = 0.6.
Use 
       u[x, y] = y -  0.8  x, and v[x, y] = x y.

\(Clear[x, y, u, v]; 
{u[x_, y_], v[x_, y_]} = {y - 0.8\ x, x\ y}\)

Note 
       y = 0.8  x ⟷ u[x, y] = 0
       y = 0.8  x +  0.5 ⟷ u[x, y] = 0.5
       x y = 0.2 ⟷ v[x, y] = 0.2
       x y = 0.6 ⟷ v[x, y] = 0.6.
After you stretch everything out so that the level curves of u[x, y] and v[x, y] become perpendicular straight lines on uv-paper, you see that the uv-paper plot, (Subscript[R, uv]), of (Subscript[R, xy]) is the region inside the uv-paper rectangle with corners at 
       {0, 0.2}, {0.5, 0.2}, {0.5, 0.6}, and {0, 0.6}.

uvboundary = 
      Show[Graphics[{Red, 
            Line[{{0, 0.2}, {0.5, 0.2}, {0.5, 0.6}, {0, 0.6}, {0, 0.2}}]}], 
        Graphics[Text["\!\(R\_uv\)", {0.4, 0.5}]], Axes -> Automatic, 
        Axes -> Automatic];

Now
       (∫_^)(∫_( (Subscript[R, xy]))^) x 
            (y^2) dx dy
       (∫_^)(∫_( 
            (Subscript[R, uv]))^) x[u, v] y[u, v]^2 (Subscript[A, xy])[u, v] 
            du dv
       (∫_0.2^0.6)(∫_0^0.5) 
          x[u, v] y[u, v]^2 (Subscript[A, xy])[u, v] du 
            dv.
You can let Mathematica mop this up as soon as you find out what x[u, v], y[u, v], and (Subscript[A, xy])[u, v] are:

Solve[{u == u[x, y], v == v[x, y]}, {x, y}]

The original region (Subscript[R, xy]) consists of {x, y}'s with positive coordinates, so you use:

\(Clear[Axy, gradx, grady]; 

    x[u_, v_] = 0.25\ \((\(-2.5\)\ u + 0.5\ \@\(25\ u\^2 + 80\ v\))\); 

    \(y[u_, v_] = 0.1\ \((5\ u + \@\(25\ u\^2 + 80\ v\))\); \)\)\(gradx[u_, v_] = {D[x[u, v], u], D[x[u, v], v]}; 

    grady[u_, v_] = {D[y[u, v], u], D[y[u, v], v]}; 

    Axy[u_, v_] = Det[{gradx[u, v], grady[u, v]}]\)

This is negative; so throw in an extra minus sign to arrive at
       (∫_^)(∫_( (Subscript[R, xy]))^) x 
            (y^2) dx dy
        = 
        (∫_0.2^0.6)(∫_0^0.5) 
            x[u, v] y[u, v]^2 (-(Subscript[A, xy[u, v]])) 
              du dv

integral = 
      NIntegrate[
        x[u, v] y[u, v]^2 (-Axy[u, v]), {v, 0.2, 0.6}, {u, 0, 0.5}]

There wasn't all that much to it.  
Once you decided on a good uv-paper, then Mathematica ground it out without much trouble.  The choice of uv-paper was more or less dictated by the set-up of the problem.  
It saved a lot of miserable, irritating algebra.

B.3.c.iii)

In calculating the last two integrals, what was the decisive advantage in switching from xy-paper to uv-paper?

Setting up the integrals on xy-paper would have been frustrating.
Setting up the integrals by transforming them to uv-paper was a breeze; it's the modern, up-to-date way of doing it.