# RevolutionPlot3D: axis of revolution that doesn't pass through the origin

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}}]}]
]
````

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

-

## 1 Answer

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]
````

-

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
lang-mma
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.8361045122146606, "perplexity_flag": "middle"}