(*source*)
sourceStruct =
{{a, {{c1, d}, {e, f}}}, {b, {{c2, h}, {i, k}}}, {m, {{c3, n}, {v,x}}}}
(*target*)
targetStruct = {{a, {{d}, {e, f}}}, {b, {{h}, {i,k}}}, {m, {{n}, {v, x}}}}
(*try 1*)
Apply[Function[x, Delete[x, 1]], Level[sourceStruct, {2}], {1}]
(*result 1*)
{a, {d}, b, {h}, m, {n}}
(*try 2*)
Map[Function[x, Delete[x, 1]], sourceStruct, {3}]
(*result 2*)
{{a, {{d}, {f}}}, {b, {{h}, {k}}}, {m, {{n}, {x}}}}
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 ... Answer 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}]
Comments
Post a Comment