Re: Fare calcoli in (La)TeX

#7441
Up
0
Down
::


Ciao a tutti.
Incollo qui un esempio d’uso del pacchetto fp con pstricks.
Per chi ha voglia di ispezionare il codice segnalo l’uso di \FPeval insieme alla funzione trunc.

`
\documentclass{article}
\usepackage{amsmath}
\usepackage{fp}
\usepackage{pstricks,pst-plot,pstricks-add}

\definecolor{mydarkgreen}{rgb}{0.03,0.47,0.03}
\definecolor{mydarkblue}{rgb}{0.07,0.08,0.4}
\definecolor{mylightblue}{rgb}{.8, .8, 1}
\definecolor{mylightgray}{rgb}{0.95,0.95,0.95}
\definecolor{mydarkgray}{rgb}{0.35,0.35,0.35}
\definecolor{myblue}{rgb}{.4,.4,1}

\begin{document}
\resetOptions

\psset{unit=9}%
%\psset{xunit=12cm,yunit=6cm}%<--!!! % \FPeval\XCLL{trunc( 0.45 ,3)}% Corner Lower Left \FPeval\YCLL{trunc( -0.25,3)}% Corner Lower Left \FPeval\XCUR{trunc( 1.5 ,3)}% Corner Upper Right \FPeval\YCUR{trunc( 1.0,3)}% Corner Upper Right % \begin{pspicture}(\XCLL,\YCLL)(\XCUR,\YCUR)% % . . . . . . . . . . . . . . . . . . . . . . . . . . . . % grid % . . . . . . . . . . . . . . . . . . . . . . . . . . . . \psgrid[subgriddiv=20,subgriddots=4,gridcolor=gray,subgridcolor=gray,% gridlabels=0%, <-- !!! ](\XCLL,\YCLL)(\XCUR,\YCUR)% % . . . . . . . . . . . . . . . . . . . . . . . . . . . . % axes @ bottom % . . . . . . . . . . . . . . . . . . . . . . . . . . . . \psaxes[% axesstyle=frame,%axis tickstyle=top,% linewidth=1pt,% Dx=0.1,% Dy=0.2,% linecolor=mydarkblue,% %\ifMYFONTS %xLabel={\fontfamily{pfu}\fontseries{n}\fontshape{n}\selectfont% % \color{mydarkblue}\small},% futura %yLabel={\fontfamily{pfu}\fontseries{n}\fontshape{n}\selectfont% % \color{mydarkblue}\small},% futura %\fi Ox=0.0,% origin of labels Oy=0.0,% origin of labels %labelsep=15pt ]%{->}
(0.0,0.0)% axes intersection
(0.0,0.0)(1.0,1.0)% opposite corners

% . . . . . . . . . . . . . . . . . . . . . . . . . . . .
% data
% . . . . . . . . . . . . . . . . . . . . . . . . . . . .

\FPeval\Radius{trunc( 0.9 ,3)}

\FPeval\EulerAngleDeg{trunc( 35 ,3)}
\FPeval\EulerAngleRad{trunc( (\EulerAngleDeg)/57.3 ,3)}

\FPeval\cMu{trunc( cos(\EulerAngleRad) ,3)}
\FPeval\sMu{trunc( sin(\EulerAngleRad) ,3)}

\FPeval\Vcos{trunc( (\Radius)*cos(\EulerAngleRad) ,3)}
\FPeval\Vsin{trunc( (\Radius)*sin(\EulerAngleRad) ,3)}

\FPeval\xN{trunc( 0.5 ,3)}% N
\FPeval\yN{trunc( 0.9 ,3)}%

\FPeval\xP{trunc( (\xN)+(\Radius)*sin( 10 / 57.3 ) ,3)}% P'x
\FPeval\yP{trunc( (\yN)-(\Radius)*cos( 10 / 57.3 ) ,3)}% P'y

\pnode(\xN,\yN){nN}
\pnode(\xP,\yP){nP}

\psRelNode[angle=\EulerAngleDeg](nN)(nP){1}{nP1}% needs pstricks-add v. 2.57
\psRelNode[angle=0](nN)(nP){\cMu}{nPm}

%\qdisk(nP2){3.0pt}
\FPeval\cc{trunc( cos( 45 / 57.3 ) ,3)}%
\FPeval\dd{trunc( 0.2 ,3)}%
\FPeval\dc{trunc( (\dd)*(\cc) ,3)}%
\psRelNode[angle=45](nPm)(nP1){\dd}{nPmm}
\psRelNode[angle=0](nPm)(nP1){\dc}{nPm1}
\psRelNode[angle=90](nPm)(nP1){\dc}{nPm2}

\psline[linewidth=1pt,linecolor=red,fillcolor=red!50,fillstyle=solid]
(nPm)(nPm1)(nPmm)(nPm2)

\ncline[linecolor=red,linewidth=5.0pt,arrows=->,arrowinset=0,arrowscale=1.2]%
{nN}{nP}%
\bput[0.02]{0}(0.92)
{\Large$\vec{v}_{\perp}$}%

\ncline[linecolor=red,linewidth=5.0pt,arrows=->,arrowinset=0,arrowscale=1.2]%
{nN}{nP1}%
\aput[0.03]{0}(0.5)
{\Large$\vec{v}\,'_{\!\perp}$}%

\ncline[linecolor=mydarkblue,linewidth=3.0pt,arrows=->,arrowinset=0,arrowscale=1.2]%
{nPm}{nP1}%
\ncline[linecolor=mydarkblue,linewidth=3.0pt,arrows=->,arrowinset=0,arrowscale=1.2]%
{nN}{nPm}%

\psarc[showpoints=false,linewidth=2pt,linestyle=dashed,arrows=-]
(nN){\Radius}{270}{320}

\psRelNode[angle=0](nN)(nP){0.3}{nMu1}
\psRelNode[angle=0](nN)(nP1){0.3}{nMu2}
\ncarc[arcangle=-15,linewidth=2pt,linestyle=solid,arrows=->]{nMu1}{nMu2}
\aput[0.03]{0}(0.5){\Large$\mu$}%

\psRelNode[angle=0](nPm)(nP1){1.2}{nA1}
\psRelNode[angle=0](nPm)(nP1){1.5}{nA2}
\ncline[linecolor=mydarkblue,linewidth=3.3pt,arrows=->,arrowinset=0,arrowscale=1.2]%
{nA1}{nA2}%
\aput[-0.02]{0}(0.8)
{\large$\frac{\displaystyle1}{\displaystyle|\vec{v}_{\perp}|}\,\vec{e}\wedge\vec{v}_{\perp}$}%

\psRelNode[angle=0](nN)(nP){1.07}{nA3}
\psRelNode[angle=0](nN)(nP){1.25}{nA4}
\ncline[linecolor=mydarkblue,linewidth=3.3pt,arrows=->,arrowinset=0,arrowscale=1.2]%
{nA3}{nA4}%
\aput[0.01]{0}(0.7)
{\large$\frac{\displaystyle1}{\displaystyle|\vec{v}_{\perp}|}\,\vec{v}_{\perp}$}%

\qdisk(nN){4.0pt}\uput{0.03}[90]{0}(nN){\large$N$}%
\qdisk(nP){4.0pt}\uput{0.03}[-120]{0}(nP){\large$P$}%
\qdisk(nPm){4.0pt}\uput{0.03}[180]{0}(nPm){\large$H$}%
\qdisk(nP1){4.0pt}\uput{0.03}[-40]{0}(nP1){\large$P'$}%

\end{pspicture}%

\end{document}
`

Il codice riportato sopra produce il risultato seguente:

Ciao,
Agostino

Go to top