====== Différences ====== Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
pstricks:ml20070927 [2007/09/27 11:20] jms |
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> | <code latex> | ||
Ligne 9: | Ligne 13: | ||
\usepackage[latin1]{inputenc} | \usepackage[latin1]{inputenc} | ||
\usepackage[T1]{fontenc} | \usepackage[T1]{fontenc} | ||
- | \usepackage[charter]{mathdesign} | ||
\usepackage{pst-plot} | \usepackage{pst-plot} | ||
+ | \usepackage{arrayjob} | ||
\makeatletter | \makeatletter | ||
Ligne 66: | Ligne 70: | ||
\makeatother | \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} | \pagestyle{empty} | ||
\SpecialCoor | \SpecialCoor | ||
+ | \listfiles | ||
\begin{document} | \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} | \psset{plotpoints=360} | ||
+ | % | ||
\begin{center} | \begin{center} | ||
- | \begin{pspicture}(-5,-5)(5,5) | + | \begin{pspicture}(-4,-5)(10,5) |
% 0<t<1440 en degrés | % 0<t<1440 en degrés | ||
% r=k*(t+1)^2 avec k=0.01 | % r=k*(t+1)^2 avec k=0.01 | ||
% t en degrés -> x en degrés -> angle = x*0.01745 en radians | % 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 } | \newcommand\radius{0.01745 mul 1 add dup mul 0.01 mul } | ||
- | \psplot[polarplot=true]{0}{1440}{x \radius} | + | \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(7;60) | ||
+ | \psline(10;0) | ||
\begingroup | \begingroup | ||
\psset{framesep=0pt} | \psset{framesep=0pt} | ||
- | \rput*(!/x 420 def x cos x \radius mul x sin x \radius mul ){\color{red}\shortstack{SUITES\\ ARITHMÉTIQUES}} | + | \multido{\i=1+1,\Is=420+360,\Ip=720+360}{3}{% |
- | \rput*(!/x 780 def x cos x \radius mul x sin x \radius mul ){\color{red}\shortstack{SUITES\\ GÉOMÉTRIQUES}} | + | \rput*(!/x \Is\space def x cos x \radius mul x sin x \radius mul ){\color{blue}\suites(\i)} |
- | \rput*(!/x 1140 def x cos x \radius mul x sin x \radius mul ){\color{red}\shortstack{VARIATIONS\\ D'UNE SUITE}} | + | \rput*(!/x \Ip\space def x cos x \radius mul x sin x \radius mul ){\color{red!80}\proba(\i)} |
+ | } | ||
\endgroup | \endgroup | ||
- | \rput*(7;60){\psframebox{\color{red}{SUITES}}} | + | \rput*(10;0){\psframebox{\color{red!80}{PROBALITÉS}}} |
- | \multido{\i=200+360,\I=400+360}{3}{% | + | \rput*(7;60){\psframebox{\color{blue}{SUITES}}} |
- | \psplot[polarplot=true,arrows=->,arrowsize=0.2]{\i}{\I}{x \radius}} | + | |
\end{pspicture} | \end{pspicture} | ||
\end{center} | \end{center} | ||
\end{document} | \end{document} | ||
+ | |||
</code> | </code> | ||
+ |