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.