0
$\begingroup$

For a mapping $\gamma(x,y)$ from $\mathbb{R}^2$ to $\mathbb{R}^2$ we can plot the image of some two dimensional region with ParametricPLot as, for instance,

\[Gamma][x_, y_] := {x^2, x*y^3} ParametricPlot[\[Gamma][x, y], Element[{x, y}, Disk[]], PlotRange -> All] 

being the domain, say, a disk. But if I want to plot just the image of the boundary as

ParametricPlot[\[Gamma][x, y], Element[{x, y}, Circle[]], PlotRange -> All] 

then ParametricPlot has troubles understanding the dimensionality and the number of variables. Then, how can one make a parametric plot, being the domain some curve, as in the previous example ?

Note: I do not want to parametrize the circle as $(\cos\theta,\sin\theta)$ and then replace back to get $\gamma(\theta)$, because this may not be possible for more complicated curves without closed, analytical formula.

$\endgroup$
5
  • $\begingroup$ ParametricPlot[\[Gamma][x, y], Element[{x, y}, Disk[]], PlotRange -> All, BoundaryStyle -> Red, PlotStyle -> None] $\endgroup$ Commented Sep 20, 2022 at 14:17
  • $\begingroup$ @cvgmt True. But my question comes from the fact that the function is some numerical, slowly running bunch of things and running for the whole interior, which I don't need, is unnecessary, so just want to compute the values of the boundary. $\endgroup$ Commented Sep 20, 2022 at 14:19
  • $\begingroup$ reg = ParametricRegion[{\[Gamma][x, y], {x, y} \[Element] Circle[]}, {x, y}]; Region[Style[reg, Red]] $\endgroup$ Commented Sep 20, 2022 at 14:42
  • 1
    $\begingroup$ @cvgmt - what version are you using? With v13.1 on a Mac, I don't get a plot $\endgroup$ Commented Sep 20, 2022 at 15:17
  • $\begingroup$ @BobHanlon I am using v13.1 on Win 11 and v13.1 on Manjaro Linux. $\endgroup$ Commented Sep 20, 2022 at 22:39

2 Answers 2

3
$\begingroup$
  • draw a circle and mapping it by γ[x_, y_] = {x^2, x*y^3}
Clear[circle,γ]; circle= RegionPlot[DiscretizeRegion[Circle[], AccuracyGoal -> 3]]; γ[x_, y_] = {x^2, x*y^3}; circle /. {x_Real, y_Real} -> γ[x, y] 

enter image description here

  • Use ParametricRegion as in comment.
reg = ParametricRegion[{γ[x, y], {x, y} ∈ Circle[]}, {x, y}]; RegionPlot[DiscretizeRegion[reg, MaxCellMeasure -> .0001], AspectRatio -> Automatic] 

enter image description here

$\endgroup$
1
$\begingroup$

You may first generate a parametrized region. From the result you then calculate the boundary using "RegionBoundary". Here is your example:

reg = ParametricRegion[{\[Gamma][x, y], {x, y} \[Element] Disk[]}, {x, y}] Region[Style[reg, Red]] (*show the region*) Region[RegionBoundary[reg]] (* show the border *) 

enter image description here

If you want to increase the performance, you may only calculate a small strip. The drawback is, that the border is then 2 sided:

reg = ParametricRegion[{\[Gamma][x, y], {x, y} \[Element] RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.998]] }, {x, y}]; Region[Style[reg, Red]] (*show the region*) Region[RegionBoundary[reg]] (* show the border *) 

enter image description here

$\endgroup$
3
  • $\begingroup$ Thanks. But my question comes from the fact that the function is some numerical, slowly running bunch of things and running for the whole interior, which I don't need, is unnecessary, so I just want to compute the values of the boundary $\endgroup$ Commented Sep 20, 2022 at 18:34
  • $\begingroup$ Look at my answer again. I added way to decrease the amount of calculation to my answer. $\endgroup$ Commented Sep 20, 2022 at 19:01
  • $\begingroup$ Nice. That's an ingenious solution. $\endgroup$ Commented Sep 20, 2022 at 19:20

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.