# Filling between two spheres in SphericalPlot3D

Manipulate[
SphericalPlot3D[{1, 2 - n}, {θ, 0, Pi}, {ϕ, 0, 1.5 Pi},
Mesh -> None, PlotPoints -> 15, PlotRange -> {-2.2, 2.2}], {n, 0,
1}]


I cant' seem to be able to make a filling between two spheres. I've already tried the obvious Filling -> {1 -> {2}} but Mathematica doesn't seem to like that option. Is there any easy way around this or ...

There is no built-in filling in SphericalPlot3D. One option is to use ParametricPlot3D to draw the surfaces between the two shells:

Manipulate[
Show[SphericalPlot3D[{1, 2 - n}, {θ, 0, Pi}, {ϕ, 0, 1.5 Pi},
PlotPoints -> 15, PlotRange -> {-2.2, 2.2}],
ParametricPlot3D[{
r {Sin[t] Cos[1.5 Pi], Sin[t] Sin[1.5 Pi], Cos[t]},
r {Sin[t] Cos[0 Pi], Sin[t] Sin[0 Pi], Cos[t]}},
{r, 1, 2 - n}, {t, 0, Pi}, PlotStyle -> Yellow, Mesh -> {2, 15}]],
{n, 0, 1}] • It's a real bumer that there is no built in function, but thanks to kind and skillful people like you there is always a solution! :) – user 3 50 Feb 9 '14 at 20:21

Using RegionPlot3D is the easiest way to do it.

Manipulate[
Show[RegionPlot3D[1 <= x^2 + y^2 + z^2 <= (2 - n)^2 && (y >= 0 || x <= 0), {x, -2.2,
2.2}, {y, -2.2, 2.2}, {z, -2.2, 2.2}, Mesh -> None,
PlotPoints -> 50]], {n, 0, 1}]; You may want to render it before manipulating to avoid the recalculation, specially if you want better resolution.

• Thank you very much for your answer! :) – user 3 50 Feb 9 '14 at 20:20