2
$\begingroup$

I have a curve like below;

ParametricPlot[
 FromPolarCoordinates[{Exp[(t + 0)*0.5], t}] // Evaluate, {t, 0, 
  Pi - 0}, PlotRange -> All]

not rotated

This curve rotates around z axis. Therefore for a rotation of pi/2 gives something like this:

ParametricPlot[
 FromPolarCoordinates[{Exp[(t + Pi/2)*0.5], t}] // 
  Evaluate, {t, -Pi/2, Pi - Pi/2}, PlotRange -> All]

rotated spiral

What I want is to plot all the curves in a specified circle when it rotates with 3.6 degrees. And I want the sum of curves in the circle.

enter image description here

I tried this code but it didn't work:

ParametricPlot[Sum[HeavisideTheta[1 -
      ((Exp[(t + Pi*i/50)*0.5]*Cos[t] - 
           1)^2 + (Exp[(t + Pi*i/50)*0.5]*Sin[t])^2)]*
    FromPolarCoordinates[{Exp[(t + Pi*i/50)*0.5], t}], {i, 1, 100}] //
   Evaluate, {t, -Pi*i/50, Pi - Pi*i/50}, PlotRange -> All]

I also tried this code:

ParametricPlot[ Evaluate@Sum[ HeavisideTheta[ 1 - ((Exp[(t + Pi*i/50)*0.5]Cos[t] - 1)^2 + (Exp[(t + Pii/50)*0.5]Sin[t])^2)] FromPolarCoordinates[{Exp[(t + Pi*i/50)*0.5], t}], {i, 1, 100}], {t, -Pi, Pi}, PlotRange -> All]

But it gives something like below:

not OK

What I need is something like this:

OK

And the sum of those curves in the circle area.

How should I write the code to achieve what I want?

$\endgroup$
5
  • 1
    $\begingroup$ Something like this: ParametricPlot[ Table[FromPolarCoordinates[{Exp[(t + 2 k Pi/100)*0.5], t}], {k, 1, 100, 5}], {t, -Pi, Pi}, PlotRange -> All, PlotStyle -> Red, RegionFunction -> Function[{x, y}, (x - 3)^2 + y^2 < 9]] // Show[#, ContourPlot[(x - 3)^2 + y^2 == 9, {x, 0, 6}, {y, -3, 3}, ContourStyle -> Blue]] &? $\endgroup$
    – corey979
    Feb 17, 2019 at 13:47
  • $\begingroup$ @kglr nope. I editted my answer and showed what your solution is like. $\endgroup$
    – Alper91
    Feb 17, 2019 at 13:47
  • $\begingroup$ @corey979 Yes! Yes! Exactly like that one and the sum of the curves' length within the circle $\endgroup$
    – Alper91
    Feb 17, 2019 at 13:49
  • $\begingroup$ @corey979 However, your solution is not the rotation case. It is the case where radial growth of the spiral increases. $\endgroup$
    – Alper91
    Feb 17, 2019 at 13:57
  • $\begingroup$ @corey979 I am sorry corey what you provide was right, if I know where my limits are. And this is the code I wanted like you suggested: ParametricPlot[ Table[FromPolarCoordinates[{Exp[(t + 2 k Pi/100)*0.5], t}], {k, 1, 100, 5}], {t, -Pi, Pi}, PlotRange -> All, PlotStyle -> Red, RegionFunction -> Function[{x, y}, (x - (Exp[Pi*0.5] + 1)/2)^2 + y^2 < ((Exp[Pi*0.5] - 1)/2)^2]] // Show[#, ContourPlot[(x - (Exp[Pi*0.5] + 1)/2)^2 + y^2 == ((Exp[Pi*0.5] - 1)/2)^2, {x, 0, 6}, {y, -3, 3}, ContourStyle -> Blue]] & However, I need also sum of the lengths $\endgroup$
    – Alper91
    Feb 17, 2019 at 14:07

1 Answer 1

8
$\begingroup$
ctr = {3, 0};
radius = 3;
pp = PolarPlot[Evaluate@Table[Exp[(t + Pi*i/50)*0.5], {i, 1, 100}], {t, -Pi, Pi}, 
 RegionFunction -> (Norm[{#, #2} - ctr] <= radius &)]

enter image description here

Total[ArcLength /@ Cases[pp, _Line, All]]
(* or Total[RegionMeasure /@ Cases[pp, _Line, All]] *)

314.511

If ypu have to use ParametricPlot, you can do

pp2  = ParametricPlot[Evaluate[Table[E^(((j*Pi)/50 + t)/2) { Cos[t], Sin[t]}, {j, 1, 100}]], 
 {t, -Pi, Pi}, 
 RegionFunction -> (Norm[{#, #2} - ctr] <= radius &), PlotRange -> All]

enter image description here

 Total[ArcLength /@ Cases[pp2, _Line, All]]

314.511

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.