使用 pst-3dplot 绘制球谐函数

使用 pst-3dplot 绘制球谐函数

为了我的理论物理学(即量子力学)讲义,我试图将球谐函数可视化。我使用 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}

球谐函数

相关内容