为了我的理论物理学(即量子力学)讲义,我试图将球谐函数可视化。我使用 Mathematica 来绘制它们,这就是我所做的:
SphericalPlot3D[(Sqrt[3/(4*Pi)]*Sin[theta]*Cos[phi])^2,
{theta, 0, Pi}, {phi, 0, 2*Pi}, PlotRange -> All, PlotPoints -> 50]
这给了我这样的印象:
现在我想使用pst-3dplot
(或pst-solides3d
)来绘制它,但我不知道怎么做,因为没有像这样的选项SphericalPlot3D
。我尝试使用\parametricplotThreeD
,但这没有输出任何有用的信息。这是我的 MWE
\documentclass{minimal}
\usepackage{pst-3dplot}
\begin{document}
\centering
\psset{algebraic=true}
\begin{pspicture}(-2,-3.5)(4,0)
\parametricplotThreeD[SphericalCoor=true](0,\psPi)(0,\psPiTwo)%
{t | u | (sqrt(3/(4*\psPi))*sin(t)*cos(u))^2}
\end{pspicture}
\end{document}
这是输出
提前致谢。
答案1
该函数\parametricplotThreeD
将表面的 x、y、z 坐标作为参数,而 t 和 u 是极角和方位角。以下代码给出了您要查找的内容:
\documentclass{minimal}
\usepackage{pst-3dplot}
\begin{document}
\centering
\psset{algebraic=true}
\begin{pspicture}(-2,-3.5)(4,0)
\parametricplotThreeD[SphericalCoor=true](0,\psPi)(0,\psPiTwo)%
{ cos(u)^3*sin(t)^3 | sin(u)*sin(t)^3*cos(u)^2 | cos(t)*sin(t)^2*cos(u)^2 }
\end{pspicture}
\end{document}
另一个制作漂亮 3D 图的选项是 Asymptote,请参阅画廊它还具有球谐函数图。
答案2
感谢 Alex 的回答,我能够使用pst-solides3d
\documentclass[pstricks,border=3pt]{standalone}
\usepackage{pst-plot}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}(-1,-1)(1,1)
\defFunction[algebraic]{harmonic}(u,v)
{sin(u)*cos(v)*(sqrt(3/(4*\psPi))*sin(u)*cos(v))^2}
{sin(u)*sin(v)*(sqrt(3/(4*\psPi))*sin(u)*cos(v))^2}
{cos(u)*(sqrt(3/(4*\psPi))*sin(u)*cos(v))^2}
\psSolid[object=surfaceparametree,
base=0 pi 0 pi 2 mul,
function=harmonic,
linewidth=0.5\pslinewidth,
ngrid=25 40
]
\end{pspicture}
\end{document}
答案3
该函数所需的图表也可以用 pgfplots 以简短的方式绘制,并且输出良好的输出。
我之前发布过TikZ.de. 它需要最近发布了 pgfplots 1.11,因为我使用了一个新功能,可以全局地从度切换到弧度,因为这里使用了弧度。
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{trig format plots=rad, compat=1.11}
\usepgfplotslibrary{colormaps}
\begin{document}
\begin{tikzpicture}
\begin{axis}[colormap/violet, hide axis]
\addplot3[
surf,
domain = 0:pi,
domain y = 0:2*pi,
samples = 50,
samples y = 70,
z buffer = sort
]
( {sin(x)*cos(y)*(sqrt(3/(4*pi))*sin(x)*cos(y))^2},
{sin(x)*sin(y)*(sqrt(3/(4*pi))*sin(x)*cos(y))^2},
{cos(x)*(sqrt(3/(4*pi))*sin(x)*cos(y))^2} );
\end{axis}
\end{tikzpicture}
\end{document}