This is a spin off/follow up to Can 2D and 3D plots be combined so that the 2D plot is the bottom surface of the 3D plot boundary? ...
Following Sjoerd's method, I did this:
image = Plot[x^2, {x, -2, 2}, PlotStyle -> {Thick, Black}];
Show[Graphics3D[{EdgeForm[], Texture[image],
Polygon[{{-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Lighting -> "Neutral", BoxRatios -> {1, 1, .1}], Boxed -> True]
Two questions:
(1) When I click on the cell bracket and save as... PDF, the resulting graphic is either empty or only contains a snippet of the intended graphic.
(2) I would like to have Mathematica draw the solid which has the region bounded by the parabola and the x axis as its base, but with cross-sections (perpendicular to the base) to be squares. I am not sure how to go about this using Graphics3D.
Any ideas?
Edit: RegionPlot3D indeed allows me to answer (2) very quickly:
p1 = Plot[x^2, {x, -2, 2}, PlotStyle -> {Thick, Black}];
p2 = RegionPlot3D[-Sqrt[y] <= x <= Sqrt[y] &&
0 <= z <= 2 Sqrt[y], {x, -2, 2}, {y, 0, 4}, {z, 0, 4},
Mesh -> False, PlotPoints -> 100, PlotStyle -> Opacity[.3],
Boxed -> False, Axes -> False]
p3 = Show[
Graphics3D[{EdgeForm[], Texture[p1],
Polygon[{{-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]},
Lighting -> "Neutral", BoxRatios -> {1, 1, 1}], Boxed -> True]
Now my only issue is how to lay the solid in p2 over the image in p3? I tried
Show[p2, p3, PlotRange -> All]
and other variations, to no avail.
Edit #2: Should have had RegionPlot z range as {z,0,4}. Fixed now. Also, the slices can be visualized via
slices = Table[RegionPlot3D[-Sqrt[y] <= x <= Sqrt[y] && 0 <= z <= 2 Sqrt[y] &&
j - .5 <= y <= j, {x, -2, 2}, {y, 0, 4}, {z, 0, 4},
Mesh -> False, PlotPoints -> 100, PlotStyle -> Opacity[.3],
Boxed -> False, Axes -> False], {j, .5, 4, .5}];
Show[Table[slices[[j]], {j, 1, 8}]]
but with cross-sections (perpendicular to the base) to be squares.
means. Could you upload a hand drawing? $\endgroup$RegionPlot3D[]
for your second question? $\endgroup$p1 = Plot[x^2, {x, -2, 2}, PlotStyle -> {Thick, Black}]; p2 = Table[ Plot[j/2, {x, -Sqrt[j/2], Sqrt[j/2]}, PlotStyle -> {Thick, Blue}], {j, 1, 8}]; p3 = Show[p1, p2]; Show[Graphics3D[{EdgeForm[], Texture[p3], Polygon[{{-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1}}, VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}, Lighting -> "Neutral", BoxRatios -> {1, 1, .1}], Boxed -> True]
the blue lines would form the bottom edge of a square. $\endgroup$