Outils d'utilisateurs

Outils du Site

A PCRE internal error occured. This might be caused by a faulty plugin

Sidebar

====== Navigation dans le wiki ====== * [[accueil|Accueil]] * [[http://melusine.eu.org/syracuse/contrib/|Syracuse]] //(contributions)// ===== Espaces dédiés ===== * [[pstricks:index|PSTricks]] * [[Pgf/Tikz:index|Pgf/Tikz]] * [[gnuplot:index|Gnuplot]] * [[octave::index|Octave]] ===== Contributeurs ===== * [[mc:index|Maxime Chupin]] * [[cp:index|Christophe Poulain]] * [[jms:index|Jean-Michel Sarlat]] * [[sylcha:index|Sylvain Chambon]] * [[rouxn:index|Nicolas Roux]] * [[tj:index|Thierry Joffredo]] * [[tg:index|Thierry Gauvin]]

pstricks:ml20070927

===== Placer un texte sur une spirale ===== Pour placer un texte à un endroit précis d'une spirale, c'est relativement simple, comme dans l'exemple ci-dessous. Faire une commande à partir d'une liste de mots c'est une autre paire de manches, mais ça doit être possible : cela demande réflexion... Pour gérer une liste de mots ou expressions, le package arrayjob semble le plus simple à utiliser et le plus approprié ! Voici donc une ébauche de ce que pourrait être une mise en place automatique des chapitres sur la spirale. Reste à définir pour la spirale une équation qui donne une mise en page correcte. {{ pstricks:ml20070928.png?600x449 }} <code latex> \documentclass{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{pst-plot} \usepackage{arrayjob} \makeatletter % D.G. addition - Jun. 9, 1998 - Polar plots using the \psplot macro % Code added according the way suggested by Ulrich Dirr <udirr@das-team.com> % For polar plots \newif\ifpolarplot \def\psset@polarplot#1{\@nameuse{polarplot#1}} \psset@polarplot{false} \def\psplot@i#1#2#3{% \pst@killglue \begingroup \use@par \@nameuse{beginplot@\psplotstyle}% % D.G. modification begin - Jun. 9, 1998 \ifpolarplot \addto@pscode{% \psplot@init /x #1 def /x1 #2 def /dx x1 x sub \psk@plotpoints div def /xy {% Adapted from \parametricplot@i #3 dup x cos mul exch x sin mul \pst@number\psxunit mul exch \pst@number\psyunit mul exch } def}% \else % D.G. modification end \addto@pscode{% \psplot@init /x #1 def /x1 #2 def /dx x1 x sub \psk@plotpoints div def /xy { x \pst@number\psxunit mul #3 \pst@number\psyunit mul } def}% % D.G. modification begin - Jun. 9, 1998 \fi % D.G. modification end \gdef\psplot@init{}% \@pstfalse \@nameuse{testqp@\psplotstyle}% \if@pst \psplot@ii \else \psplot@iii \fi \endgroup \ignorespaces} \makeatother \makeatletter % de nouvelles flèches de Christophe FOUREY % http://tug.org/mailman/htdig/pstricks/2007/004294.html % v : Vee arrow (inside) % V : Vee arrow (outside) % f : Filled vee arrow (inside) % F : Filled vee arrow (outside) \edef\pst@arrowtable{\pst@arrowtable,v-v,V-V,f-f,F-F} % Vee arrow \def\psset@veearrowlength#1{\pst@getlength{#1}\psk@veearrowlength} \psset@veearrowlength{3mm} % default projected length \def\psset@veearrowangle#1{\pst@getangle{#1}\psk@veearrowangle} \psset@veearrowangle{30} % default angle \def\psset@veearrowlinewidth#1{\pst@getlength{#1}\psk@veearrowlinewidth} \psset@veearrowlinewidth{.35mm} % default vee arrow line width % Filled vee arrow \def\psset@filledveearrowlength#1{\pst@getlength{#1} \psk@filledveearrowlength} \psset@filledveearrowlength{3mm} % default projected length \def\psset@filledveearrowangle#1{\pst@getangle{#1} \psk@filledveearrowangle} \psset@filledveearrowangle{15} % default angle \def\psset@filledveearrowlinewidth#1{\pst@getlength{#1} \psk@filledveearrowlinewidth} \psset@filledveearrowlinewidth{.35mm} % default vee arrow line width \pst@def{VeeArrow}<% 1 setlinecap % round caps 1 setlinejoin % round join setlinewidth % vee arrow line width /y ED % projected length 2 div /a ED % angle (divide by 2) /t ED % false = inside, true = outside a sin a cos div y mul /x ED % perpendicular length : x=tan(a).y t { 1 -1 scale } if % if outside : symmetry x neg y moveto % point #1 0 0 L % point #2 x y L % point #3 {closepath gsave fill grestore} if % if filled : close and fill stroke % draw line 0 t {y 2 mul} {0} ifelse moveto> % if outside : twice longer line % VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width \@namedef{psas@v}{% false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} \@namedef{psas@V}{% false true \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} \@namedef{psas@f}{% true false \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow} \@namedef{psas@F}{% true true \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow} \makeatother \pagestyle{empty} \SpecialCoor \listfiles \begin{document} \newarray\suites \readarray{suites}{\shortstack{suites\\ arithmétiques}&\shortstack{suites\\ géométriques}&variation d'une suite} \newarray\proba \readarray{proba}{probabilité&\shortstack{probabilité\\ d'un événement}&\shortstack{expérimentation\\ et simulation}} \psset{plotpoints=360} % \begin{center} \begin{pspicture}(-4,-5)(10,5) % 0<t<1440 en degrés % r=k*(t+1)^2 avec k=0.01 % t en degrés -> x en degrés -> angle = x*0.01745 en radians \newcommand\radius{0.01745 mul 1 add dup mul 0.01 mul } \psplot[polarplot=true,linecolor=red]{0}{1440}{x \radius} \multido{\i=200+360,\I=400+360}{3}{% \psplot[polarplot=true,arrows=-v,arrowsize=0.5,linecolor=red,arrowinset=0]{\i}{\I}{x \radius}} \psline(7;60) \psline(10;0) \begingroup \psset{framesep=0pt} \multido{\i=1+1,\Is=420+360,\Ip=720+360}{3}{% \rput*(!/x \Is\space def x cos x \radius mul x sin x \radius mul ){\color{blue}\suites(\i)} \rput*(!/x \Ip\space def x cos x \radius mul x sin x \radius mul ){\color{red!80}\proba(\i)} } \endgroup \rput*(10;0){\psframebox{\color{red!80}{PROBALITÉS}}} \rput*(7;60){\psframebox{\color{blue}{SUITES}}} \end{pspicture} \end{center} \end{document} </code>

pstricks/ml20070927.txt · Dernière modification: 2007/09/28 19:45 par jms