Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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:

Show[
  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

1 Answer 1

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

 
discard

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.