Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is a follow up question to RevolutionPlot3D: but NOT revolving about the z axis so please check that for the context.

It seems that RevolutionAxis requires the axis of revolution to pass thru the origin. Suppose I want to use an axis of revolution that does not pass through the origin, e.g., the line $y=-1$ in the example above. What is a good way to accomplish this?

I do realize that RegionPlot3D may be appropriate here, but even with seemingly simple examples such as the one above, it can struggle:

  RegionPlot3D[1 <= Sqrt[(y + 1)^2 + z^2] <= 1 + x^2, {x, 0, 1}, 
    {y, -3, 3}, {z, -3, 3}, PlotRange -> All, PerformanceGoal -> "Quality", 
    Mesh -> False, AxesLabel -> {x, y, z}, PlotPoints -> 100, 
    ViewPoint -> {0.87, 0.44, 1.76}, ViewVertical -> {0.32, 0.67, 0.67}],
  Graphics3D[{Thickness[.01], Black, Line[{{0, -1, 0}, {1.15, -1, 0}}]}]

enter image description here

Bumping PlotPoints up to 200, 300, 400 doesn't alleviate the problem and gets really slow.

share|improve this question

Generate the plot and then apply a translation:

RevolutionPlot3D[{Sin[t], t, Cos[t]}, {t, 0, 4 Pi}, RevolutionAxis -> {0, 0, 1}, 
                 PlotRange -> All] /. 
 GraphicsComplex[p_List, rest__] :> GraphicsComplex[TranslationTransform[{5, 5, 0}][p], rest]

enter image description here

share|improve this answer
I am not sure I understand this approach. How would I use it to generate the solid of revolution in the question? Thanks. – JohnD Dec 16 '12 at 1:50

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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