带有 tikzpicture 的重力/电场

带有 tikzpicture 的重力/电场

我使用包pst-electricfield结合pspicture来获得重力/电场的图形表示(见下文)。是否可以使用 实现相同的结果tikz?如果可以,如何实现?

提前感谢您的回答。

以下是代码pstricks和输出:

\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-electricfield}
\begin{document}
\begin{pspicture*}(-5,-5)(5,5)
\psframe*[linecolor=green!20](-5,-5)(5,5) 
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10] 
\psElectricfield[Q={[1 -2 0][-1 2 0]},linecolor=red]
\psEquipotential[Q={[1 -2 0][-1 2 0]},linecolor=blue](-5,-5)(5,5) \psEquipotential[Q={[1 -2 0][-1 2 0]},linecolor=green,Vmin=0,Vmax=0](-5,-5)(5,5)
\end{pspicture*}
\end{document}

在此处输入图片描述

答案1

在 中很容易pgfplots,它基于tikz,因为该图是由两个解析定义的轮廓图构成的,如来自@Jeremie 评论的 PDF

只是奇点的处理不是那么容易,我猜想情节存在准确性问题(或者我丢弃奇点的条件是错误的),所以我只是用合适颜色的圆圈填充了背景。

为了获得美观的外观,轮廓线数量samplesnumber轮廓线级别的选择需要进行一些微调,并且方程式只是针对您给出的示例进行硬编码......

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
 \begin{axis}[axis equal image,domain=-4.05:4.05,,xmin=-4,xmax=4,ymin=-4,ymax=4,samples=40,view={0}{90}]
             % replace missing field lines at singularities
             \fill[blue] (2,0) circle (0.4);
             \fill[blue] (-2,0) circle (0.4);

   \addplot3[contour gnuplot={number=50,labels=false, draw color=blue},thick,]
             {abs(((1)/sqrt((x-2)^2+y^2) - (1)/sqrt((x+2)^2+y^2)))<4 ? ((1)/sqrt((x-2)^2+y^2) - (1)/sqrt((x+2)^2+y^2)) : NaN };

   \addplot3[contour gnuplot={number=18,labels=false, draw color=red},
             thick,
            ]
             {abs(((x-2)/sqrt((x-2)^2+y^2) - (x+2)/sqrt((x+2)^2+y^2)))<10 ? ((x-2)/sqrt((x-2)^2+y^2) - (x+2)/sqrt((x+2)^2+y^2)) : NaN };

 \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容