1
$\begingroup$

I am trying to plot an open cone (without the base) with a certain thickness. I have first tried with RevolutionPlot3D as follows:

RevolutionPlot3D[{t, t}, {t, 0, 1}, Mesh -> 100, 
 MeshStyle -> Transparent, PlotStyle -> {Opacity[0.5]}, 
 PlotTheme -> "ThickSurface", Boxed -> False, Axes -> False, 
 PlotRange -> {{-1, 1}, {-1, 1}, {0, 2}}]

However, the generatrix is visible for some reasons: enter image description here

I have then tried with Graphics3D and Cone:

Graphics3D[{Cone[], Thickness[0.1]}, ClipPlanes -> {{0, 0, 1, 1}}, 
 Boxed -> False, Axes -> False]

But changing the thickness doesn't seem to change anything. Is there any hidden function to hide the generatrix in RevolutionPlot3D? I understand though that ideally I should use the function Cone since it is less heavy in memory.

$\endgroup$
2
  • $\begingroup$ Removing the option PlotStyle -> {Opacity[0.5]} gets rid of most of the line. Is that sufficient? $\endgroup$
    – tad
    Aug 27 at 19:41
  • $\begingroup$ Thanks for the prompt reply. That would indeed work, but I need a minimum of transparency for some other purpose. $\endgroup$
    – mekano
    Aug 27 at 20:13
0
$\begingroup$

This looks like a bug to me. RevolutionPlot3D treats the surface like it were not isotrop in the x y plane, having an edge along the generatrix.

To circumvent this, we may use RegionPlot3D instead of RevolutionPlot3D:

wall = 0.04;
RegionPlot3D[(z - wall) <= 
  Sqrt[x^2 + y^2] <= (z + wall), {x, -1 - wall, 
  1 + wall}, {y, -1 - wall, 1 + wall}, {z, -wall, 1}, 
 PlotPoints -> 100, Mesh -> None, Axes -> True, Boxed -> True, 
 PlotStyle -> Directive[Opacity[0.5]], 
 PlotRange -> (1 + wall) {{-1, 1}, {-1, 1}, {0, 1}}] 

enter image description here

$\endgroup$
1
  • $\begingroup$ Thank you, that works perfectly! $\endgroup$
    – mekano
    Aug 30 at 21:38

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.