lundi 31 mars 2014

Chaîne d'oscillateurs : partie 1

Dans cette première partie, on se limite à 3 mobiles et 4 ressorts.
Le système est représenté à l'équilibre. On peut supposer, sans que cela nuise à la généralité du problème, que les ressorts ne sont alors ni comprimés, ni tendus.
Le package pst-ode est utilisé pour la résolution numérique du système d'équations différentielles, le package pst-ressort pour le dessin des ressorts et le package animate pour les animations incluses dans le fichier pdf.
Pour le package pst-ode, les variables seront définies par :



 Nous étudions, dans ce document, un cas particulier : c’est une chaîne d’oscillateurs identiques :

Le calcul des modes propres est explicité dans le document :
chaine-oscillateurs-1.pdf
chaine-oscillateurs-1.texfichiers inclus dans le répertoire :
Les animations suivantes sont au format Gif. Les images ont été calculées avec PSTricks. Pour que l'animation soit fluide il faut attendre que le navigateur ait mis dans le cache les 50 images de l'animation.
Premier mode :
Deuxième mode :
Troisième mode :

Sur le document on trouvera une autre animation : propagation d'un ébranlement le long de la chaîne.

Les fichiers du package pst-ressort :
pst-ressort-package
Les packages pst-ode et animate d'Alexan­der Grahn :
http://www.ctan.org/pkg/pst-ode
http://www.ctan.org/pkg/animate

jeudi 27 mars 2014

Illustrations du couplage de deux oscillateurs avec les packages : pst-ressort, pst-ode et animate

Il ne s’agit pas d’un document sur l’étude des oscillateurs couplés, mais d’une suite
d’exemples réalisés avec PSTricks illustrant ce phénomène. Le système est constitué par deux mobiles auto-porteurs posés sur une table horizontale, chacun d’eux lié à un bord de la table par un ressort et reliés entre eux par un troisième ressort. Nous avons donc un système de deux oscillateurs (m1, k1) et (m2, k2) couplés par le ressort K.
Le système est représenté à l’équilibre. On peut supposer, sans que cela nuise à la généralité du problème, que les ressorts ne sont alors ni comprimés, ni tendus.
Si vous souhaitez des renseignements sur l’étude théorique, celle-ci est très bien faite par Gilbert Gastebois sur sa page personnelle :
http://gilbert.gastebois.pagesperso-orange.fr/java/oscillateur/couplage/theorie_couplage.htm

La résolution numérique du système d’équations différentielles est confiée au package pst-ode et l'animation incorporée au fichier pdf au package animate. Ces deux packages sont l’œuvre d’Alexander Grahn, ils pourraient être utilisés sans difficulté pour l’illustration du cas général.

Nous allons illustrer le cas de l’oscillateur symétrique m1 = m2 = m = 1 kg et k1 = k2 = 5N/m.
Le document source et le pdf concernant les oscillateurs couplés "oscillateurs-couples-v3.tex" et "oscillateurs-couples-v3.pdf" sont dans le répertoire :

D'autres exemples sont dans le répertoire cité.
pst-ode et animate sont sur le serveur du CTAN :
http://www.ctan.org/pkg/pst-ode
http://www.ctan.org/pkg/animate

Les animations suivantes sont au format Gif animé, (pour observer une animation fluide, il faut attendre que les images aient été mises en cache par le navigateur). Les images ont été calculées avec PSTricks. Suivant les conditions initiales :
Premier mode propre : l'oscillateur symétrique.

 Deuxième mode propre : l'oscillateur antisymétrique

 Les battements :


jeudi 20 mars 2014

Oscillateur élastique horizontal : une application de pst-ressort

L’expérience se déroule sur une table horizontale à coussin d’air, avec mobile autoporteur.
Le mobile autoporteur :




Les ressorts non sollicités (à vide).

Les ressorts sont fixés au mobile autoporteur, le système est en équilibre.

Le mobile autoporteur est écarté vers la droite, puis lâché sans vitesse initiale.

x(t) :

Sur le document, l'animation a été réalisée avec le package animate et est incluse dans le fichier pdf.
mobileautoporteur2ressorts.pdf
mobileautoporteur2ressorts.tex

Tous les fichiers sont dans ce répertoire :


Le début de l'écriture du package pst-ressort est à cette page :

http://pstricks.blogspot.fr/2014/03/representation-dun-ressort-en-pseudo.html

mardi 18 mars 2014

applications de pst-ressort - suite 2


On trouve dans le livre de “Mécanique Physique” de Fleury et Mathieu, paru aux éditions Eyrolles en 1953, page 41, une application intéressante du pistolet à ressort précédemment étudié:
http://pstricks.blogspot.fr/2014/03/application-de-pst-ressort-un-pistolet.html 
En voici l’illustration reproduite d’après le schéma du livre.

 Le texte suivant est extrait du livre :
« Un wagonnet installé sur une petite voie ferrée PQRT est lancé par descente sur un plan incliné QR et continue son mouvement suivant RT, avec une vitesse uniforme, sur un chemin horizontal. Dans ce wagonnet se trouve un pistolet à ressort capable de lancer une bille suivant la verticale. Le lancer de la bille se fait, commandé par un déclic convenable, quand la wagonnet vient de prendre sur RT son mouvement uniforme. La bille B part de A. Elle décrit la parabole ASA’ pendant que la wagon continue sa route de R vers T. La bille retombe en A’ dans l’entonnoir d’où elle était partie en A. La vitesse horizontale initiale est conservée malgré le mouvement vertical. »


Cet exemple est à la fin du document pistolet_a_bille.tex et pistolet_a_bille.pdf:

lundi 17 mars 2014

application de pst-ressort : un pistolet à ressort et oscillations périodiques

Quelques éléments théoriques et deux animations réalisées avec le package animate sont inclus dans le répertoire :

Les images pour l'animation au format Gif sont obtenues avec le code suivant :

\documentclass{article}
\usepackage{pst-ressort,multido}
\usepackage{pst-slpe}
\usepackage[a4paper,margin=1cm]{geometry}

\SpecialCoor
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{li=10,N=50,dl=0,nS=15,unit=1,alpha=12}%
\psset{unit=0.75}
\multido{\rt=0+0.0094,\i=0+1,\rb=-0.0282+0.0078}{30}{%
\begin{pspicture}(-1,0)(1,32)
\psframe*[linecolor=yellow!20](-1,0)(1,32)
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt]
\psframe[fillstyle=hlines,linestyle=none,hatchsep=2pt](-1,0)(1,-0.2)
\psline(-1,0)(1,0)
\psframe(-1,0)(1,32)
\pstVerb{
    /RadtoDeg { 180 mul Pi div } bind def         % convert from radian to degrees
    /Pi 3.14159265359 def
    /m' 0.010 def
    /k' 20 def
    /z0 0.05 def
    /zv 0.10 def
    /g' 9.81 def
    /O' k' m' div sqrt def
    /T' 2 Pi mul O' div def}%
\ifnum\i<5 br="">\pstVerb{
      /z' z0 zv sub g' O' dup mul div add O' RadtoDeg \rt\space mul cos mul
          g' O' dup mul div sub zv add def
      }%
\psRessort[linewidth=0.05,linecolor=blue](0,0)(! 0 z' 100 mul)
\rput(! 0 z' 100 mul 0.6 add){\psBall(0,0){black}{0.6}}
\else
\pstVerb{
      /t' \rb\space def
      /z' 0.5 g' mul t' dup mul mul neg 2 t' mul add zv add def
      }%
\psRessort[linewidth=0.05,linecolor=blue](0,0)(0,10)
\rput(! 0 z' 100 mul 0.6 add){\psBall(0,0){black}{0.6}}
\fi
\end{pspicture}\newpage}
\end{center}
\end{document}


Tous les  fichiers sont dans le répertoire :

pst-ressort-package

mercredi 12 mars 2014

Illustrations, avec PSTricks, du mouvement de 2 pendules élastiques verticaux couplés

C'est une application du package pst-ressorts :


L'étude théorique très complète a été effectuée par Jacques Charrier sur le site de l’université de Nantes :

http://www.sciences.univ-nantes.fr/sites/jacques_charrier/sp/tdl/pend_elast_couple/ pend_elast_couples.html

On se référera donc à ce document pour tous les compléments théoriques utiles.

Ce document est un exemple d'utilisation du package pour illustrer l'étude du système formé par les deux pendules à ressort verticaux couplés.
(a) un des ressort de coefficient de raideur k ;
(b) une masse (m) est accrochée au premier ressort, le système est représenté à l’équilibre ;
(c) un deuxième ressort auquel est suspendu une masse (m) est accroché à la première masse. Le système est représenté à l’équilibre ;
(d) on tire le système verticalement vers le bas d’une longueur Δ l0 et il est temporairement maintenu dans cette position, avant d’être lâché sans vitesse initiale.

Le document comprend deux animations réalisées avec le package animate. En voici une au format gif avec d'autres conditions initiales :


 Les fichiers sont dans ce répertoire :



pst-ressort : un exemple réalisé par Juergen Gilg

C'est une animation avec 3 ressorts, elle est incorporée dans le pdf. Le fichier source est attaché au pdf.
Voici une image de cette animation.

Le fichier pst-ressort_examples.pdf est dans le répertoire :

pst-ressort-package

mercredi 5 mars 2014

Thomas Söll : une application de pst-perspective

Une application du package pst-perspective de Thomas : une église joliment dessinée :



Le package pst-perspective est disponible sur le serveur du CTAN :

Concernant le dessin de l'église, voici le listing du fichier source :

\documentclass{article}
\usepackage{amsmath}
\usepackage[dvipsnames]{xcolor} %% Farben sind im Dokument xcolor.pdf definiert
\usepackage[distiller,rgb]{pstricks}
\usepackage{multido,pst-grad,pst-eucl,pstricks-add}


\makeatletter  %
\pst@addfams{pst-perspective}
\define@boolkey[psset]{pst-perspective}[Pst@]{translineA}[false]{} % showtransline
\define@boolkey[psset]{pst-perspective}[Pst@]{translineB}[false]{} % showtransline
\define@boolkey[psset]{pst-perspective}[Pst@]{translineK}[true]{} % show transline
\define@boolkey[psset]{pst-perspective}[Pst@]{LowPoint}[false]{} % show transline
\define@key[psset]{pst-perspective}{transcolor}[blue]{\def\psk@transTS@transcolor{#1}}
\define@key[psset]{pst-perspective}{transAcolor}[green]{\def\psk@transTS@transAcolor{#1}}
\define@key[psset]{pst-perspective}{transBcolor}[blue]{\def\psk@transTS@transBcolor{#1}}
\define@key[psset]{pst-perspective}{translinestyle}[solid]{\def\psk@transTS@translinestyle{#1}}
\define@key[psset]{pst-perspective}{transAlinestyle}[dashed]{\def\psk@transTS@transAlinestyle{#1}}
\define@key[psset]{pst-perspective}{transBlinestyle}[dashed]{\def\psk@transTS@transBlinestyle{#1}}
\define@key[psset]{pst-perspective}{translinewidth}[0.8pt]{\def\psk@transTS@translinewidth{#1}}
\define@key[psset]{pst-perspective}{transAlinewidth}[0.7pt]{\def\psk@transTS@transAlinewidth{#1}}
\define@key[psset]{pst-perspective}{transBlinewidth}[0.7pt]{\def\psk@transTS@transBlinewidth{#1}}
\define@key[psset]{pst-perspective}{LowP}[{0|0}]{\def\psk@transTS@LowP{#1}}
\define@key[psset]{pst-perspective}{originT}[{0|0}]{\def\psk@transTS@originT{#1}}
\define@key[psset]{pst-perspective}{base}[0]{\def\psk@transTS@base{#1 }} % y-Wert der Basis f\"{u}r die Transformation
\define@key[psset]{pst-perspective}{phi}[45]{\def\psk@transTS@phi{#1 }}% Winkel f\"{u}r das Schr\"{a}gbild
\define@key[psset]{pst-perspective}{vkf}[0.5]{\def\psk@transTS@vkf{#1 }} % Verk\"{u}rzungsfaktor
\psset[pst-perspective]{phi=45,vkf=0.5,base=0,translineA=false,translineB=false,transAcolor=green,transBcolor=blue,%
transAlinewidth=0.7pt,transBlinewidth=0.7pt,transAlinestyle=dashed,transBlinestyle=dashed,%
translineK=true,transcolor=blue,translinewidth=0.8pt,translinestyle=solid,LowPoint=false,LowP={0,0},originT={0,0}}%
\SpecialCoor%
\def\ba{\psk@transTS@base}
\def\pstransTS{\pst@object{pstpstransTS}}%
%
\def\pstpstransTS@i(#1)#2#3{%
\begingroup%
% (#1) Punkt 1
% #2 Node-Name des Startpunktes % #3 Node-Name des transformierten Punktes
\pst@killglue
\use@par
\rput(\psk@transTS@originT){\pnode(#1){#2}}%
\pst@getcoor{#1}\pst@tempA%
\pst@getcoor{\psk@transTS@LowP}\pst@tempB
\rput(\psk@transTS@originT){\pnode(! %
\pst@tempA \tx@UserCoor /y1 ED /x1 ED
\ifPst@LowPoint
\pst@tempB \tx@UserCoor /y2 ED /x2 ED
\else
/y2 \psk@transTS@base def \fi
/lang y2 y1 sub abs \psk@transTS@vkf mul def
/lang2 y2 y1 sub def
lang2 0 ge {/alph2 \psk@transTS@phi 180 sub def} {/alph2 \psk@transTS@phi def} ifelse
lang alph2 PtoC exch x1 add exch y2 add){#3}
\ifPst@translineA
\ifPst@LowPoint
\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempA \tx@UserCoor pop \pst@tempB \tx@UserCoor exch pop)(#2)
\else
\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempA \tx@UserCoor pop \psk@transTS@base)(#2)
\fi
\else \fi%
\ifPst@translineB
\ifPst@LowPoint
\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempA \tx@UserCoor pop \pst@tempB \tx@UserCoor exch pop)(#3)
\else
\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempA \tx@UserCoor pop \psk@transTS@base)(#3)
\fi
\else \fi%
}%
\endgroup
\ignorespaces
}
%------------------------------------------------------------------
\def\pstransTSK{\pst@object{pstpstransTSK}}%
\def\pstpstransTSK@i(#1)#2#3#4{%
\begingroup%
% (#1) Koordinaten des Punktes (kartesisch oder Polarkoordinaten)
%  #2  Originall\"{a}nge #3  Node-Name des Startpunktes %  #4   Node-Name des transformierten Punktes
\pst@killglue
\use@par
\rput(#1){\pnode(0,0){#3}}
\rput(#1){\pnode(! %
/l1 #2 def
/l2 l1 \psk@transTS@vkf mul def
l2 \psk@transTS@phi PtoC){#4}}
\ifPst@translineK
\pcline[linecolor=\psk@transTS@transcolor,linestyle=\psk@transTS@translinestyle,linewidth=\psk@transTS@translinewidth](#3)(#4)
\else \fi%
\endgroup
\ignorespaces
}
\makeatother


\begin{document}

\psscalebox{1}{%
\begin{pspicture}[showgrid=false](-0.5,-3)(12,14.4)
\psset{linejoin=2,phi=35,vkf=0.5}
\pstransTSK[translineK=false](-3,0){11}{GR1}{GR1'}
\pstransTSK[translineK=false](11,0){11}{GR2}{GR2'}
\pstransTSK[translineK=false](-3,0){-8}{GR3}{GR3'}
\pstransTSK[translineK=false](11,0){-8}{GR4}{GR4'}
\pspolygon[fillstyle=solid,fillcolor=green!60!black!80,linestyle=none](GR1')(GR2')(GR4')(GR3')

{\psset{base=-3}
\multido{\i=0+1,\n=1+1,\ra=-45+22.5,\rb=-22.5+22.5}{12}{%
\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
\pstransTS[originT={4,4}](6;\ra){H\i}{I\i}
\pstransTS[originT={4,4}](6;\rb){J\n}{K\n}
\psline(E\i)(G\n)
\psline(I\i)(K\n)
\pspolygon[fillstyle=solid,fillcolor=gray,opacity=1](E\i)(G\n)(K\n)(I\i)
}}

{\psset{translineK=false}%
\pstransTSK(0,0){1}{A1}{B1}
\pstransTSK(2,0){1}{A2}{B2}
\pstransTSK(2,3){1}{A3}{B3}
\pstransTSK(0,2){1}{A4}{B4}
%----------------------------
\pstransTSK(0,0){6}{A1}{C1}
\pstransTSK(2,0){6}{A2}{C2}
\pstransTSK(2,3){6}{A3}{C3}
\pstransTSK(0,2){6}{A4}{C4}
}
\psline[linestyle=dashed](C1)(C4)
\psline[linestyle=dashed](B1)(C1)(C2)
\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=1](B1)(B2)(B3)(B4)
\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=1](B2)(C2)(C3)(B3)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=120,hatchsep=1.5pt](B4)(B3)(C3)(C4)
%----------------------------
\pstransTSK(2,0){6}{A5}{C5}
\pstransTSK(6,0){6}{A6}{C6}
\pstransTSK(6,4){6}{A7}{C7}
\pstransTSK(4,6){6}{A8}{C8}
\pstransTSK(2,4){6}{A9}{C9}
%----------------------------
\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](C5)(C6)(C7)(C9)
\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](C7)(C8)(C9)
\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A5)(A6)(A7)(A9)
\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A6)(C6)(C7)(A7)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=135,hatchsep=1.5pt](A9)(A8)(C8)(C9)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](A7)(C7)(C8)(A8)
\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A7)(A8)(A9)
%----------------------------
\pstransTSK(6,0){2}{A10}{C10}
\pstransTSK(8,0){2}{A11}{C11}
\pstransTSK(8,12){2}{A12}{C12}
\pstransTSK(6,12){2}{A13}{C13}
\pstransTSK(8.2,12){-0.2}{A14}{B14}
\pstransTSK(5.8,12){-0.2}{A15}{B15}
\pstransTSK(8.2,12){2.2}{A14}{C14}
\pstransTSK(5.8,12){2.2}{A15}{C15}
\pstransTSK[translineK=false](8,14){2}{A16}{C16}
\pstransTSK[translineK=false](6,14){2}{A17}{C17}
\psIntersectionPoint(A16)(C17)(A17)(C16){SB1}
%----------------------------
\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](C10)(C11)(C12)(C13)
\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](A10)(A11)(A12)(A13)
\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](A11)(C11)(C12)(A12)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](C14)(C15)(SB1)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B15)(C15)(SB1)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B14)(B15)(SB1)
\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B14)(C14)(SB1)

{\psset{base=-3}
\multido{\i=0+1,\n=1+1,\ra=-45+22.5,\rb=-22.5+22.5}{3}{%
\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
\pstransTS[originT={4,4}](6;\ra){H\i}{I\i}
\pstransTS[originT={4,4}](6;\rb){J\n}{K\n}
\psline(E\i)(G\n)
\psline(I\i)(K\n)
\pspolygon[fillstyle=solid,fillcolor=gray,opacity=1](E\i)(G\n)(K\n)(I\i)
}}

%----------- T\"{u}r --------------------------------------
\pstransTSK[translineK=false](1,0){1}{TL}{TL'}
\rput(TL'){%
\psscalebox{1}{%
\pscustom[fillstyle=solid,fillcolor=brown]{%
\psline(0.2,0)(-0.2,0)(-0.2,0.4)
\psarcn(0.2,0.4){0.4}{180}{120}
\psarcn(-0.2,0.4){0.4}{60}{0}
\closepath%
}
\psline[linewidth=0.5pt](0,0)(0,0.75)
\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
}}
%----------- T\"{u}r --------------------------------------
\rput(4,0){%
%\psscalebox{2}
{\psset{unit=2}%
\pscustom[fillstyle=solid,fillcolor=brown]{%
\psline(0.2,0)(-0.2,0)(-0.2,0.4)
\psarcn(0.2,0.4){0.4}{180}{120}
\psarcn(-0.2,0.4){0.4}{60}{0}
\closepath%
}
\psline[linewidth=0.5pt](0,0)(0,0.75)
\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
}}

%------- Uhr -------------------------
\rput(7,6){%
\psscalebox{1.5}{%
\pscircle[fillstyle=solid,fillcolor=lightgray!50](0,2.8){0.25}
\rput(0,2.8){%
\psline{c-c}(0,0)(0.14;50)
\psline{c-c}(0,0)(0.19;-30)
}
}}

%---------- Fenster -----------------------------------
\def\fenster{%
\pscustom[fillstyle=solid,fillcolor=white]{%
\psline(0.1,0)(-0.1,0)(-0.1,0.3)
\psarcn(0.1,0.3){0.2}{180}{120}
\psarcn(-0.1,0.3){0.2}{60}{0}
\closepath%
}}
\rput(3,2){%
\psscalebox{1.5}{\fenster}}
\rput(5,2){%
\psscalebox{1.5}{\fenster}}

%---------- Weg -----------------------------------------
\pstransTSK[translineK=false](3.5,0){-8}{W1}{W1'}
\pstransTSK[translineK=false](4.5,0){-8}{W2}{W2'}
\pspolygon[fillstyle=solid,fillcolor=gray!50,linestyle=none](W1)(W1')(W2')(W2)


{\psset{translineK=false,linestyle=none}
\multido{\i=1+1,\n=1+1}{8}{%
\pstransTSK(3.5,0){1 \i\space sub}{WM1a\i}{WM1a'\i}
\pstransTSK(3.5,0){0.5 \i\space sub}{WM1\i}{WM1'\i}
\pstransTSK(3.75,0){1 \i\space sub}{WM2a\i}{WM2a'\i}
\pstransTSK(3.75,0){0.7 \i\space sub}{WM2\i}{WM2'\i}
\pstransTSK(4.0,0){1 \i\space sub}{WM3a\i}{WM3a'\i}
\pstransTSK(4.0,0){0.5 \i\space sub}{WM3\i}{WM3'\i}
\pspolygon[fillstyle=solid,fillcolor=green!40,opacity=1](WM1a'\i)(WM1'\i)(WM2'\i)(WM2a'\i)
\pspolygon[fillstyle=solid,fillcolor=black!50,opacity=1](WM1'\i)(WM2'\i)(WM3'\i)
\pspolygon[fillstyle=solid,fillcolor=blue!40,opacity=1](WM2a'\i)(WM2'\i)(WM3'\i)(WM3a'\i)
\pstransTSK(4,0){0.5 \n\space sub}{WM4a\n}{WM4a'\n}
\pstransTSK(4,0){-\n}{WM4\n}{WM4'\n}
\pstransTSK(4.25,0){0.5 \n\space sub}{WM5a\n}{WM5a'\n}
\pstransTSK(4.25,0){.2 \n\space sub}{WM5\n}{WM5'\n}
\pstransTSK(4.5,0){0.5 \n\space sub}{WM6a\n}{WM6a'\n}
\pstransTSK(4.5,0){-\n}{WM6\n}{WM6'\n}
\pspolygon[fillstyle=solid,fillcolor=green!40,opacity=1](WM4a'\n)(WM4'\n)(WM5'\n)(WM5a'\n)
\pspolygon[fillstyle=solid,fillcolor=black!50,opacity=1](WM4'\n)(WM5'\n)(WM6'\n)
\pspolygon[fillstyle=solid,fillcolor=blue!40,opacity=1](WM5a'\n)(WM5'\n)(WM6'\n)(WM6a'\n)
}}
\end{pspicture}
}
\end{document}

lundi 3 mars 2014

Un package de Thomas Söll concernant la perspective cavalière : pst-perspective

Pour la perspective, on fixe l'angle des fuyantes et le coefficient de réduction. Ces deux paramètres fixés, on peut obtenir l'image d'un point et ensuite construire des figures. D'autres options sont prévues. Voici quelques images de la documentation. Celle-ci est rédigée en allemand, cependant une version anglaise est en préparation et peut-être que la version française sera mise en chantier prochainement.


Le package pst-perspective est disponible sur le serveur du CTAN :

dimanche 2 mars 2014

Représentation d’un ressort en pseudo-perspective

Le package pst-coil de Timothy Van Zandt (complété par les différents mainteneurs qui lui ont succédé) est en principe dédié à la représentation en perspective des ressorts et possède de nombreuses options. Cependant, malgré le nombre des options, celles-ci ne peuvent satisfaire entièrement les physiciens. En effet, les 2 options : coilwidth qui permet de fixer le diamètre du ressort et coilheight la distance entre deux spires – c’est à dire le pas de l’hélice, ne tiennent pas compte que si l’on modifie la longueur du ressort en le comprimant ou en l’étirant, le nombre de spires est toujours le même et que la distance entre les spires ainsi que le diamètre du ressort s’en trouvent modifiés.
La commande \psRessort[options](x1,y1)(x2,y2) permet de tenir compte du comportement physique d’un ressort.

Le package comprend les fichiers : pst-ressort.sty et pst-ressort.tex

La documentation comprend une animation réalisée avec le package animate d'Alexander Grahn.

L'ensemble est dans le dossier :