5
$\begingroup$

I have a pair of 3D parametric curves:

ParametricPlot3D[
 {{x*Sin[x], x*Cos[x], -((2*x)/3)}, {1.15*x*Sin[x], 1.15*x*Cos[x], -((2*x)/3)}},
 {x, 0, (11/4)*Pi}, 
 PlotStyle -> {Darker[Blue], Darker[Blue]}
]

enter image description here

I would like to fill the 2D region between the two curves, in order to create a locally flat 'solid'. How do I go about this?

I'm guessing the the best bet might be ParametricRegion - but I can't figure out how to make it work...

$\endgroup$
4
$\begingroup$

A few additional alternatives:

ParametricPlot3D[{v x Sin[x], v x Cos[x], -2 x /3}, 
  {x,  0, (11/4)*Pi}, {v, 1, 1.15}, 
  PlotStyle -> Darker[Blue],  Mesh -> None,  PlotPoints -> 100]

enter image description here

ParametricPlot3D[{v x Sin[x], v x Cos[x], -2 x /3}, 
 {x, 0, (11/4)*Pi}, {v, 0, 1.15}, 
 PlotStyle -> None, PlotPoints -> 100,
 MeshFunctions -> {#5 &}, Mesh -> {{1}}, MeshShading -> {None, Darker@Blue}]

same picture

ParametricPlot3D[{v x Sin[x], v x Cos[x], -2 x /3}, 
 {x, 0, (11/4)*Pi}, {v, 0, 1.15}, 
 PlotStyle -> Darker[Blue],  PlotPoints -> 100, Mesh -> None,
 RegionFunction -> (1 <= #5 <= 1.15 &)]

same picture

| improve this answer | |
$\endgroup$
  • $\begingroup$ With thanks to you both, I am ticking the second answer, as this produces a smoother curve. I appreciate both replies, thank you. $\endgroup$ – Richard Burke-Ward Jun 3 at 16:21
4
$\begingroup$

One easy way is to let ParametricPlot linearly interpolate between the two curves:

f1 = {x*Sin[x], x*Cos[x], -((2*x)/3)};
f2 = {1.15*x*Sin[x], 1.15*x*Cos[x], -((2*x)/3)};
ParametricPlot3D[{
  lambda f1 + (1 - lambda) f2
  },
 {x, 0, (11/4)*Pi},
 {lambda, 0, 1},
 PlotStyle -> Darker[Blue],
 Mesh -> None
 ]

Output

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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