我使用包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。
只是奇点的处理不是那么容易,我猜想情节存在准确性问题(或者我丢弃奇点的条件是错误的),所以我只是用合适颜色的圆圈填充了背景。
为了获得美观的外观,轮廓线数量samples
和number
轮廓线级别的选择需要进行一些微调,并且方程式只是针对您给出的示例进行硬编码......
\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}