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
Spacings
andImagePadding
.)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 thePlotRange
andViewPoint
options.)PerformanceGoal -> "Quality"
- I switched from
GraphicsRow
toRow
, which I like much better. (I then also setImageSize -> Small
to make the plots a bit bigger than they'd naturally be inRow
.) - I was able to align the plots pretty well by setting
BaselinePosition
for 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