Outils d'utilisateurs

Outils du Site


pstricks:ml20070927

====== Différences ====== Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

pstricks:ml20070927 [2007/09/27 11:15]
jms créée
pstricks:ml20070927 [2007/09/28 19:45] (Version actuelle)
jms modification de la taille d'affichage de l'image
Ligne 3: Ligne 3:
 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 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... 
  
-{{ pstricks:ml20070927.png }}+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.1190884525.txt.gz · Dernière modification: 2007/09/27 11:15 par jms