Färben der Oberfläche eines SphericalPlot3D anhand des Bildes einer Funktion $\Phi (r,\theta,\phi)$
Sep 02 2020
Die Sache ist also, dass ich einen SphericalPlot3D einer potenziellen Funktion habe und ihn unter Berücksichtigung des Bildes der Funktion einfärben möchte.
Die Funktionen sind:
fA[r_, θ_, ϕ_] = ((4/3 r^0 )*
LegendreP[0, 0, Cos[θ]]) + ((-r^1 )*
LegendreP[1, 0, Cos[θ]]) + ((1/6 r^2 )*
LegendreP[2, 0, Cos[θ]]);
fB[r_, θ_, ϕ_] = ((38/3 r^(-(0 + 1)))*
LegendreP[0, 0, Cos[θ]]) + ((-8 r^(-(1 + 1)))*
LegendreP[1, 0, Cos[θ]]) + ((16/3 r^(-(2 + 1)))*
LegendreP[2, 0, Cos[θ]]);
fδV[r_, θ_, ϕ_] = (Cos[θ] - 1)^2;
f[r_, θ_, ϕ_] =
Piecewise[{{fA[r, θ, ϕ],
r < 2}, {fB[r, θ, ϕ],
r > 2}, {fδV[r, θ, ϕ], r == 2}}]
Und ich versuche eine farbige Darstellung von f [r, θ_, ϕ_] zu sehen, die es auf die Kugel projiziert.
Wie kann ich es tun? Ich habe es mit versucht
SphericalPlot3D[{fA[1, θ, ϕ], (Cos[θ - 1] - 1)^2,
fB[3, θ, ϕ]}, {θ, 0, π}, {ϕ, 0, 1.5 Pi},
PlotRange -> All,
ColorFunction ->
Function[{x, y, z, θ, ϕ, r},
ColorData["DarkRainbow"][f[r, θ, ϕ]]],
PlotPoints -> 10,
PlotLegends -> {"\!\(\*SubscriptBox[\(Φ\), \
\(δV\)]\)(r,θ,ϕ) para r=R=2",
"\!\(\*SubscriptBox[\(Φ\), \(B = 0\)]\)(r,θ,\
ϕ) para r=1",
"\!\(\*SubscriptBox[\(Φ\), \(A = 0\)]\)(r,θ,\
ϕ) para r=3"}, PlotTheme -> "Detailed",
AxesLabel -> {Style["X", Bold, 16], Style["Y", Bold, 16],
Style["Z", Bold, 16]}, ViewPoint -> {2, -2, 1.5}]
für 3 Werte von r.
Antworten
holahola Sep 24 2020 at 11:16
Wie bereits CA Trevillianerwähnt, sollte dieser gesamte Code funktionieren, und das tut er auch. Ein Beispiel ist
fA[r_, θ_, ϕ_] = ((4/3 r^0 )*
LegendreP[0, 0, Cos[θ]]) + ((-r^1 )*
LegendreP[1, 0, Cos[θ]]) + ((1/6 r^2 )*
LegendreP[2, 0, Cos[θ]]);
fB[r_, θ_, ϕ_] = ((8/3 r^(-(0 + 1)))*
LegendreP[0, 0, Cos[θ]]) + ((-8 r^(-(1 + 1)))*
LegendreP[1, 0, Cos[θ]]) + ((16/3 r^(-(2 + 1)))*
LegendreP[2, 0, Cos[θ]]);
fD[r_, θ_, ϕ_] = (Cos[θ] - 1)^2
f[r_, θ_, ϕ_] =
Piecewise[{{fA[r, θ, ϕ],
r < 2}, {fB[r, θ, ϕ],
r > 2}, {fD[r, θ, ϕ], r == 2}}]
SphericalPlot3D[{f[4, θ, 1], f[2, θ, 1],
f[1, θ, ϕ
]}, {θ, 0, \[Pi]}, {ϕ
, 0,
1.7 \[Pi]}, PlotRange -> All,
ColorFunction ->
Function[{x, y, z, θ, ϕ
, r},
ColorData["RedGreenSplit"][fgrande[r, θ, ϕ
]]],
ColorFunctionScaling -> True, PlotPoints -> 10,
PlotLabels -> {None, None, None}, PlotTheme -> "Detailed",
PlotLegends -> Placed["Expressions", Automatic] ,
AxesLabel -> {Style["X", Bold, 16], Style["Y", Bold, 16],
Style["Z", Bold, 16]}, ViewPoint -> {2, -1.5, 1},
ImageSize -> Large]
Das resultierende Diagramm ist das folgende:
wie Sie sehen können, liegt die Abhängigkeit im Polarwinkel.