[pstricks] Re : Re : Elektrostatic Field and equipotentiallines
mluque5130 at aol.com
mluque5130 at aol.com
Fri Jan 22 15:51:38 CET 2010
Dear all,
To try to limit the derive of the path, We can include a condition onthe potential value at the point which has been calculated. If V isthis value and V0 the initial value, We can, arbitrarily, decide that if the relative variation |(V-V0)/V0|>1e-4 then the path will end.
I'm aware that all of this is tinkering, but i have good hope that afriend very good at Postscript will think about this question in orderto help us.
Example :
%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{pstricks,pst-plot}
\SpecialCoor
\def\FieldLines{%
/r1 xP xA sub dup mul yP dup mul add sqrt def
/r2 xP xA add dup mul yP dup mul add sqrt def
/V q1 r1 div % potentiel
q2 r2 div
add def
% Ex=-dV/dx
/Ex q1 xP xA sub mul r1 3 exp div
q2 xP xA add mul r2 3 exp div
add def
% Ey=-dV/dy
/Ey yP
q1 r1 3 exp div
q2 r2 3 exp div
add mul def
/NormeE Ex dup mul Ey dup mul add sqrt def
/dX Ex NormeE div pasX mul def
/dY Ey NormeE div pasX mul def
}
\begin{document}
\begin{center}
\begin{pspicture*}(-6,-8)(6,8)
% les limites INUTILES !!!
\pstVerb{/xmin -5 def /xmax 5 def /ymin -5 def /ymax 5 def}%
% le pas d'itération
\pstVerb{/pasX 0.020 def}%
\pstVerb{/q1 1 def % les charges
/q2 -0.5 q1 mul def
/xA -2.5 def}%
% 15 degrés entre chaque ligne (24*15=360)
\multido{\iA=0+24}{15}{% 15 lignes de champ
\pstVerb{/xStart xA def
/pasX q1 q1 abs div 0.02 mul def
/xP xStart pasX \iA\space cos mul add def
/yP 0 pasX \iA\space sin mul add def}%
\parametricplot[plotpoints=2000,linecolor=blue]{xmin}{xmax}{%
\FieldLines
/xP xP dX add def
/yP yP dY add def
xP yP
}
\pstVerb{/xStart xA neg def
/pasX q2 q2 abs div 0.02 mul def
/xP xStart pasX \iA\space 180 add cos mul add def
/yP 0 pasX \iA\space 180 add sin mul add def}%
\parametricplot[plotpoints=2000,linecolor=blue]{xmin}{xmax}{%
\FieldLines
/xP xP dX add def
/yP yP dY add def
xP yP
}}
\pstVerb{/pasX 0.01 def}%
\multido{\rX=-2+0.5}{9}{%
\pstVerb{/xP \rX\space def
\FieldLines
/V0 V def}%
\parametricplot[plotpoints=1000,linecolor=red]{0}{1}{%
\FieldLines
/dY Ex NormeE div pasX mul neg def
/dX Ey NormeE div pasX mul def
/xP xP dX add def
/yP yP dY add def
xP yP
V V0 sub abs V0 div 1e-1 ge {/pasX 0 def} if
}
\parametricplot[plotpoints=1000,linecolor=red]{0}{1}{%
\FieldLines
% on part perpendiculairement aux lignes de champ
/dY Ex NormeE div pasX mul neg def
/dX Ey NormeE div pasX mul def
/xP xP dX add def
/yP yP dY add def
xP yP neg
V V0 sub abs V0 div 1e-1 ge {/pasX 0 def} if
}}
\multido{\iA=0+24}{15}{% 15 lignes de champ
\pstVerb{/xStart xA def
/pasX q1 q1 abs div 0.02 mul def
/xP xStart pasX \iA\space cos mul add def
/yP 0 pasX \iA\space sin mul add def
0 1 100 {
\FieldLines
/xP xP dX add def
/yP yP dY add def
xP yP} for
/xP1 xP def
/yP1 yP def
100 1 105 {
\FieldLines
/xP xP dX add def
/yP yP dY add def
xP yP} for
/xP2 xP def
/yP2 yP def
}%
\psline[arrowsize=5pt,linecolor=blue]{<-}(!xP1 yP1)(!xP2 yP2)
\pstVerb{/xStart xA neg def
/pasX q2 q2 abs div 0.02 mul def
/xP xStart pasX \iA\space 180 add cos mul add def
/yP 0 pasX \iA\space 180 add sin mul add def
0 1 100 {
\FieldLines
/xP xP dX add def
/yP yP dY add def
xP yP} for
/xP1 xP def
/yP1 yP def
100 1 105 {
\FieldLines
/xP xP dX add def
/yP yP dY add def
xP yP} for
/xP2 xP def
/yP2 yP def
}%
\psline[arrowsize=5pt,linecolor=blue]{<-}(!xP2 yP2)(!xP1 yP1)}
\pscircle[fillstyle=solid](!xA 0){0.25}\pscircle[fillstyle=solid](!xA neg 0){0.25}
\rput(!xA 0){-}\rput(!xA neg 0){+}
\end{pspicture*}
\end{center}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Best Regards
Manuel
-----E-mail d'origine-----
De : Herbert Voss <Herbert.Voss at FU-Berlin.DE>
A : Graphics with PSTricks <pstricks at tug.org>
Envoyé le : Mardi, 19 Janvier 2010 20:06
Sujet : Re: [pstricks] Re : Elektrostatic Field and equipotentiallines
Am 18.01.2010 21:32, schrieb Thomas Söll:
> ist possible to draw an equipotentialline in your solution of the
> fildlines through an given point?
also with Manuels solution. But I do not understand
why the V lines are far away from the charges?
Herbert
\documentclass{article}
\usepackage{pstricks-add}
\makeatletter
\let\ScreenCoor\tx at ScreenCoor
\makeatother
\def\FieldLines{
0 1 NoQ { /i ED xP i getX sub yP i getY sub Pyth } for
NoQ 1 add array astore /Radius ED
0 0
0 1 NoQ { /i ED
i getQ xP i getX sub mul i getR 3 exp Div add exch
i getQ yP i getY sub mul i getR 3 exp Div add exch
} for
/Ex ED /Ey ED
/NormeE Ex Ey Pyth def
/dX Ex NormeE div pasX mul def
/dY Ey NormeE div pasX mul def
}
\begin{document}
\def\NoQ{4}
\def\dAngle{18}
\def\Qcharge{ 1 1 1 1}
\def\Xcoor{ -2.5 2.5 2.5 -2.5}
\def\Ycoor{ -2.5 -2.5 2.5 2.5}
\pstVerb{
/xmin -5 def /xmax 5 def /ymin -5 def /ymax 5 def
/pasX xmax xmin sub 200 div def % 0.05
/NoQ \NoQ\space 1 sub def
/Qcharge [\Qcharge] def
/Xcoor [\Xcoor] def
/Ycoor [\Ycoor] def
/getX { Xcoor exch get } def
/getY { Ycoor exch get } def
/getQ { Qcharge exch get } def
/getR { Radius exch get } def
}
\begin{center}
\begin{pspicture*}(-5,-5)(5,5)
\multido{\iB=0+1}{\NoQ}{%
\psforeach{\iA}{0,10,..,360}{%
\psparametricplot[plotpoints=2000]{xmin}{xmax}[{
/xStart \iB\space getX def
/yStart \iB\space getY def
/pasX \iB\space getQ dup abs Div 0.05 mul def
/xP xStart pasX \iA\space cos mul add def
/yP yStart pasX \iA\space sin mul add def
}]{\FieldLines
/xP xP dX add def /yP yP dY add def xP yP }%
}
\pscustom{
\code{
0 1 NoQ { /i exch def
i getX i getY \ScreenCoor\space 10 i getQ abs mul 0 360 arc
gsave i getQ 0 gt {1 0 0}{0 0 1}ifelse setrgbcolor fill grestore
stroke
} for
}}
}
%
\multido{\rX=-8.1+0.5}{32}{%
\psparametricplot[plotpoints=1000,linecolor=blue]{0}{1}[{
/xStart 0 getX def
/yStart 0 getY def
/pasX 0.017 def
/xP \rX\space def
/yP 0 def
}]{\FieldLines
/dY Ex NormeE div pasX mul neg def
/dX Ey NormeE div pasX mul def
/xP xP dX add def
/yP yP dY add def
xP yP }
}
\end{pspicture*}
\end{center}
\end{document}
_______________________________________________
PSTricks mailing list
PSTricks at tug.org
http://tug.org/mailman/listinfo/pstricks
archive: http://www.tug.org/pipermail/pstricks/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tug.org/pipermail/pstricks/attachments/20100122/e3893db8/attachment.html>
More information about the PSTricks
mailing list