5
$\begingroup$

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.

$\endgroup$

2 Answers 2

3
$\begingroup$

Just want to give yet another example of how Simon Woods's contourRegionPlot3D can produce flawless results:

Show[
 contourRegionPlot3D[
  1 <= Sqrt[(y + 1)^2 + z^2] <= 1 + x^2, {x, 0, 1}, {y, -3, 
   3}, {z, -3, 3}, Mesh -> None],
 Graphics3D[{Thickness[.01], Black, 
   Line[{{0, -1, 0}, {1.15, -1, 0}}]}]
]

Mathematica graphics

$\endgroup$
2
$\begingroup$

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

$\endgroup$
1
  • 1
    $\begingroup$ I am not sure I understand this approach. How would I use it to generate the solid of revolution in the question? Thanks. $\endgroup$
    – JohnD
    Commented Dec 16, 2012 at 1:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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