I want to demonstrate generating a solid of revolution by revolving a planar region about, say, a horizontal axis. However, RevolutionPlot3D doesn't seem to have an option for revolving a curve about something other than the $z$ axis. I'm curious how you all would handle this.
Here's a simple example:
theta0 = Pi;
Manipulate[
GraphicsRow[{
Plot[x^2, {x, 0, 1}, PlotStyle -> {Thick, Black}, Filling -> Axis],
Rotate[RevolutionPlot3D[Sqrt[x], {x, 0, 1}, {t, theta0 - .001, T},
PlotRange -> {{-1, 1}, {-1, 1}, {0, 1}}, BoxRatios -> 1,
Boxed -> False, Axes -> False, ViewPoint -> {0, -2, 1}], -Pi/2]
}],
{T, theta0, theta0 + 2 Pi}]

My questions:
Is there a "better" way to showcase revolving about a horizontal axis of revolution than what I've done with
Rotate?Is it possible to generate the higher quality, finished surface of revolution while the slider bar is moving instead of only when the slider is released?
How do I prevent the vertical tick labels on the far left edge as well as the graphic on the far right edge from being clipped? (I tried
SpacingsandImagePadding.)How do I vertically align the horizontal axis of revolution of the right graphic with the horizontal axis of the left graphic?
Edit: I had a follow up question but I will spin that off as a separate question.
Answer
Answers:
RevolutionAxis, set to either"X"or{1,0,0}. (This also required adjustments to thePlotRangeandViewPointoptions.)PerformanceGoal -> "Quality"- I switched from
GraphicsRowtoRow, which I like much better. (I then also setImageSize -> Smallto make the plots a bit bigger than they'd naturally be inRow.) - I was able to align the plots pretty well by setting
BaselinePositionfor each of the plots.
I also turned off the Mesh since I felt it was distracting, especially at the beginning of the sequence.
theta0 = Pi;
Manipulate[Row[{
Plot[x^2, {x, 0, 1}, PlotStyle -> {Thick, Black},
Filling -> Axis, BaselinePosition -> Axis, ImageSize -> Small],
RevolutionPlot3D[x^2, {x, 0, 1}, {t, theta0 - .001, T},
PlotRange -> {{0, 1}, {-1, 1}, {-1, 1}}, BoxRatios -> 1,
Boxed -> False, Axes -> False, ViewPoint -> {1, -2, 0},
Mesh -> None, RevolutionAxis -> "X", PerformanceGoal -> "Quality",
BaselinePosition -> Center, ImageSize -> Small]
}], {T, theta0, theta0 + 2 Pi}]

Comments
Post a Comment