Why can't an annulus be mapped as a rectangle
Fiddling around...not an answer, other than that some obvious attempts don't work.
Try two half annuluses (annuli?)
S7 = ImplicitRegion[(1/10 <= x^2 + y^2 <= 1 && (x >= 0 )), {x, y}];
S8 = ImplicitRegion[(1/10 <= x^2 + y^2 <= 1 && (x <= 0 )), {x, y}];
GraphicsGrid[{{RegionPlot[S8 ], RegionPlot[S7]}}]
Use ToPolarCoordinates[{x, y}]
to do the transformation. Now here is a weird one...I have to run ToPolarCoordinates[{x, y}]
at least once outside of the transformation call or it fails. Very odd.
ToPolarCoordinates[{x, y}]
r7 = TransformedRegion[S7, Evaluate@ToPolarCoordinates];
r8 = TransformedRegion[S8, Evaluate@ToPolarCoordinates];
The r7
region plots exactly right. The r8
region plots wrong and jagged.
rp7 = RegionPlot[r7, PlotRange -> {{-0.2, 1.55}, 3/2 {-π, π}},
PerformanceGoal -> "Quality",
GridLines -> {Automatic, π (Range[9] - 5)/4},
FrameTicks -> {{π (Range[9] - 5)/4, None}, Automatic}
];
rp8 = RegionPlot[r8, PlotRange -> {{-0.2, 1.55}, 3/2 {-π, π}},
PerformanceGoal -> "Quality",
GridLines -> {Automatic, π (Range[9] - 5)/4},
FrameTicks -> {{π (Range[9] - 5)/4, None}, Automatic}
];
GraphicsGrid[{{rp7, rp8}}]
I could only get the r7
region to come out right using ToPolarCoordinates
. It then gets the range of the angles right too. Didn't work with the hand-rolled transformation as in this question. The r8
region is wrong in the jagged edges and the angle range.
I tried this, but it crashes the kernel when you try to RegionPlot
it.
S9 = ImplicitRegion[(1/10 <= x^2 + y^2 <= 1 && (x >= 0 || x <= 0)), {x, y}];
EDIT
Some more experimenting, things appear to work fine until you get x
and y
values in the lower left quadrant, both negative values. For example, this works fine.
S9 = ImplicitRegion[(1/10 <= x^2 + y^2 <= 1 && ((x >= 0) || (y >= 0))), {x, y}];
RegionPlot[S9]
ToPolarCoordinates[{x, y}]
r9 = TransformedRegion[S9, Evaluate@ToPolarCoordinates];
rp9 = RegionPlot[r9, PlotRange -> {{-0.2, 1.55}, 3/2 {-π, π}},
PerformanceGoal -> "Quality",
GridLines -> {Automatic, π (Range[9] - 5)/4},
FrameTicks -> {{π (Range[9] - 5)/4, None},Automatic}
]
One possible workaround is to add a thin gap on the annulus:
r = TransformedRegion[
Annulus[{0, 0}, {Sqrt[1/10], 1}, {-Pi + 0.001, Pi}],
{(#1^2 + #2^2)^0.5, ArcTan[#, #2]} &];
RegionPlot[r, AspectRatio -> Automatic]