mercredi 31 juillet 2013

Typographiquement : digestion du boa et géométrie dans un triangle

Toutes ces variations typographiques ont pour origine des réflexions d'un petit groupe constitué de Jean-Michel Sarlat, Jean-Paul Vignault, Arnaud Schmittbuhl et moi-même. Je l'avais déjà signalé dès le début de ces messages :

http://pstricks.blogspot.fr/2013/07/transformations-non-lineaires-de-textes.html

 Elles furent concrétisées par quelques réalisations en postscript. Ce sont deux idées de Jean-Paul Vignault que je reprend aujourd'hui : la géométrie dans un triangle et une bulle qui enfle au milieu d'une phrase. Je ne sais pas si le code de Jean-Paul est toujours disponible sur :
 http://melusine.eu.org/syracuse/
 car je n'ai pas pu le vérifier, le site est actuellement inaccessible, c'est pourquoi je le donne ici :
applications-conformes

Le code de Jean-Paul est particulièrement ingénieux : on donne un chemin et  par une interpolation linéaire le texte est modulé par ce chemin. Le code que je propose est un peu différent mais les résultats sont sensiblement identiques.

Le code pour l'animation :

\documentclass{article}
\usepackage{pst-nltr,multido}
\usepackage[a4paper,margin=2cm]{geometry}
\pagestyle{empty}
\begin{document}

\begin{center}
\multido{\n=8.0+-0.5,\N=2.0+-0.5,\nC=14.0+-00.5}{36}{%
\begin{pspicture}(\N,-2)(\nC,6)
\psframe(\N,-2)(\nC,6)
\pstVerb{
/arccos {
   dup
   dup mul neg 1 add sqrt
   exch
   atan
} def
/h 28.45 def
/FC {
   /y exch def
   /x exch def
   /xM wx 3 div  dup mul h dup mul sub sqrt def
   x xM neg le x xM ge or{/a h def} if
   x xM neg ge x xM le and {%
        /theta  x wx 3 div div arccos def
        /a wx 3 div theta sin mul 1 mul def} if
    x a 15 div y mul
} def}%
\psset{transform=FC}
\psTransformText[fillstyle=solid,fillcolor=green!50!orange,fontscale=1.1,pos=bc,PSfont=Helvetica](\n,0){voir la digestion du boa}%
\end{pspicture}\newpage}
\end{center}
\end{document}

Le code pour le triangle :

\documentclass{article}
\usepackage{pst-nltr}
\usepackage[a4paper,margin=2cm]{geometry}
\begin{document}

\begin{center}
\begin{pspicture}(-8,-1)(8,9)
\psframe(-8,-1)(8,9)
\pspolygon[linecolor=red,linewidth=0.05](-7.5,0)(0,6)(7.5,0)
\pstVerb{
/FC {
   /y exch def
   /x exch def
   x 0 le {/a wy 2 mul wx div x mul wy add def}
          {/a wy 2 mul wx div neg x mul wy add def}
    ifelse
    x a 3.66 div y mul
} def}%
\psset{transform=FC}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.25 0.75 0.25}},fontscale=1.5,pos=bc,PSfont=Times-Roman](0,0){La géométrie du triangle}%
\end{pspicture}
\end{center}
\end{document}


Le package pst-nltr est constitué de pst-nltr.pro, pst-nltr.sty et pst-nltr.tex qui sont dans le dossier :
applications-conformes

lundi 29 juillet 2013

Règle de la main droite (resp. de la main gauche) pour déterminer le sens du champ magnétique créé par une bobine, illustrée par Thomas Söll avec PSTricks

Règle de la main droite :
La main droite entoure la bobine de telle façon que le courant(sens conventionnel) sorte par les doigts, le pouce, dirigé parallèlement à l'axe de la bobine, indique le sens du champ magnétique.

Règle de la main gauche :
Le courant pénètre par les extrémités des doigts.

Le code :

\documentclass[12pt,a4paper]{article}
\usepackage{pst-plot,pst-grad}
\usepackage{ifthen}
\newboolean{D}
\newboolean{G}
\setboolean{D}{true}
%\setboolean{D}{false}
%\setboolean{G}{true}
\setboolean{G}{false}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\Helice{% equations
/xC radius t cos mul def
/yC radius t sin mul def
/zC PAS t mul def
xC Lo sin mul neg yC Lo cos mul add
xC neg Lo cos mul La sin mul yC Lo sin mul La sin mul sub zC La cos mul add}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\FaceA{\parametricplot[plotpoints=360,linewidth=2\pslinewidth]{0}{360}{%
/xC radius t cos mul def
/yC radius t sin mul def
/zC PAS t mul def
xC Lo sin mul neg yC Lo cos mul add
xC neg Lo cos mul La sin mul yC Lo sin mul La sin mul sub Hauteur_2 La cos mul
add}}
%%%%%%%%%%%%%%%
\def\FaceB{%
\parametricplot[plotpoints=180,linewidth=2\pslinewidth]{-90}{90}{%
/xC radius t cos mul def
/yC radius t sin mul def
/zC PAS t mul def
xC Lo sin mul neg yC Lo cos mul add
xC neg Lo cos mul La sin mul yC Lo sin mul La sin mul sub Hauteur_2 neg La cos mul
add}}
%%%%%%%%%%%%%
\def\SpireVisible{%
\parametricplot[plotpoints=360,%
linecolor=red,linewidth=1\pslinewidth]{-90}{90}{\Helice}
\ifthenelse{\boolean{\tempa}}
 {
\parametricplot[plotpoints=18,arrowinset=0.1,arrows=-<,%arrowsize=0.2,%
linecolor=red,linewidth=2\pslinewidth]{-10}{0}{\Helice}}
 {
 \parametricplot[plotpoints=18,arrowinset=0.1,arrows=->,%arrowsize=0.2,%
linecolor=red,linewidth=2\pslinewidth]{-10}{0}{\Helice}}
}
\def\SpireInVisible{%
\parametricplot[plotpoints=360,%
linecolor=red,linewidth=0.5\pslinewidth,linestyle=dashed]{90}{270}{\Helice}}
%%%%%%%%%%%%%
\def\Spires{\multido{\r=-4.026+0.366}{22}{\rput(0,\r){\SpireVisible\SpireInVisible}}}
%%%%%%%%%%%%%
\def\Cylindre{\pscustom[linestyle=none]{%
\psline(!radius neg Hauteur_2)(!radius neg Hauteur_2 neg)
\FaceB
\psline(! radius Hauteur_2 neg)(!radius Hauteur_2)
\parametricplot[plotpoints=180,linewidth=2\pslinewidth]{90}{270}{
/xC radius t cos mul def
/yC radius t sin mul def
/zC PAS t mul def
xC Lo sin mul neg yC Lo cos mul add
xC neg Lo cos mul La sin mul yC Lo sin mul La sin mul sub Hauteur_2 La cos mul add}
\fill[fillstyle=gradient,gradangle=90,gradmidpoint=0.7,gradend=white,gradbegin=blue!20]}}
%%%%%%%%%%%%%
\def\bobine{\Cylindre
{\psset{fillstyle=gradient,gradbegin=white,gradend=gray,gradangle=0}\FaceA}
\Spires\FaceB}
%%%%%%%%%%%%%
\def\BOBINE{%
\pstVerb{%
/radius 2 def
/Hauteur_2 5 def
/PAS {0.5 360 div} bind def
/Lo 0 def
/La 20 def}
\bobine
\psline[linewidth=1.5\pslinewidth](!radius neg Hauteur_2 neg PAS 200 mul add)(!radius neg Hauteur_2 PAS -250 mul add)
\psline[linewidth=1.5\pslinewidth](!radius Hauteur_2 neg PAS 200 mul add)(!radius Hauteur_2 PAS -250 mul add)}
%
\definecolor{Weiss}{rgb}{1,0.98,0.98}%     255 250 250
\definecolor{Haut}{rgb}{1,0.894,0.769}% 255 228 196
\definecolor{Auge}{rgb}{0.54,0.27,0.074}% 139 69 19
%
\def\Main#1{%
\def\tempa{#1}
\begin{psclip}
{\psframe[linestyle=none](0.25,0.25)(16,19.1)}
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!50,linewidth=0.9pt,opacity=1]{%
%
%\psset{showpoints}
\psbezier(0.2,7.6)(1.1,8.07)(1.8,8)(3,8.86)
\psbezier(3.4,9.15)(3.7,9.8)(3.7,10.1)
\psbezier(3.7,11.8)(4.8,13.2)(4.8,14)
\psbezier(4.8,14.4)(5.22,15.3)(5.18,17)
\psline(5.3,17.2)(5,18.65) % Fingernagel Daumen
\psbezier(5.05,18.8)(5.25,19)(5.5,19)
\psbezier(6.4,19)(7.35,16.9)(7.35,15.6)
\psbezier(7.35,15)(7.05,13.9)(7.05,13.4)
\psbezier(7.05,13.2)(7.1,12.8)(7.45,12.4) % Ende Daumen
\psbezier(7.7,12.5)(8.7,12.3)(8.9,12.2)
\psbezier(9.1,12.24)(9.7,12.24)(9.9,12.2)
\psbezier(10.1,12.3)(10.5,12.2)(10.8,12.2)
\psbezier(11,12.2)(11,12.3)(11.3,12.2)
\psbezier(11.5,12.22)(13.1,11.68)(13.2,11.57)
\psline(13.2,11.57)(10.2,3.8)
\psbezier(9.3,3.3)(7.8,3.3)(7.4,3.3)
\psbezier(6.8,3.3)(6.3,3.2)(5.2,3.5)
\psbezier(3.2,2.6)(3.2,2.6)(0.2,0.1)
\closepath
}
\end{psclip}

% Fingernagel Daumen
\pscustom[fillstyle=solid,fillcolor=red!10,linecolor=black!50,linewidth=0.8pt,opacity=1]{%
%
\psbezier(5.18,17.0)(5.45,17.2)(5.42,17.2)(5.4,17.4)
\psbezier(5.3,18.4)(5.4,18.4)(5,18.65)
\psbezier(4.95,18.0)(4.9,18.0)(5.18,17.0)
\closepath
}

% Linien in Handfl\"{a}che und Daumen
{\psset{linewidth=0.8pt,linecolor=black!40}
\psbezier(3,6)(3.1,5.4)(3.25,5)(3.5,4.6)
\psbezier(4.65,3.85)(4.73,3.7)(4.73,3.6)(4.8,3.35)
\psbezier(4.8,4.8)(5.1,4.35)(5.2,4)(5.2,3.5)
\psbezier(2.9,8.4)(3.15,5.7)(4.4,5.2)(4.6,4.4)
\psbezier(3.15,8.5)(3.3,7)(4.1,6)(4.6,5.4)
\psbezier(3.35,8.8)(3.5,7.6)(4.0,7)(4.6,6.6)
\psbezier(4.6,6.1)(4.8,5.85)(4.98,5.7)(5.2,5.6)
\psbezier(5.6,5.4)(9.7,8)(10,9.5)(10,10.1)
\psbezier(10,10.1)(10,10.6)(10,11)(9.5,11.6)
\psbezier(5.7,6.3)(6.2,6.45)(6.4,6.45)(6.8,6.4)
\psbezier(7,7.2)(6.9,6.5)(6.8,6.5)(6.75,6.2)
\psbezier(7.6,9)(7.8,8.2)(7.8,7)(7.5,6.4)
\psbezier(8,12.25)(9.3,11.85)(9.4,11)(9.4,10.4)
\psbezier(10.05,12)(10,11)(10,9.8)(10.05,8.86)
\psbezier(11.18,12)(11,11.2)(11.0,10.5)(11.4,9.8)
\psbezier(7.45,12.4)(7.6,12.2)(7.63,12.05)(7.9,11.9)
\psbezier(5.1,15.44)(5.25,15.44)(5.35,15.32)(5.5,15.32)
\psbezier(5,14.95)(5.3,14.95)(5.3,14.96)(5.54,15.07)
\psbezier(6.7,15.38)(7,15.42)(7,15.4)(7.35,15.6)
}

%--------------------------------------------------------------
%---------------- Platz f\"{u}r Material in der Hand --------------
%--------------------------------------------------------------
%\pscoil[coilheight=0.35,coilwidth=3,linewidth=1.3pt](10,2)(10,15)
\rput(10,8){\BOBINE
\multido{\n=-0.366+0.366}{12}{\rput(0,\n){\SpireVisible\SpireInVisible}}}

% kleiner Finger
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!50,linewidth=0.9pt,opacity=1]{%
%
\psbezier(14.0,4.95)(14.2,4.7)(14.18,4.2)(13.8,3.8)
\psbezier(13.2,3.51)(13.0,3.38)(12.0,3.25)
\psbezier(11.8,3.22)(11.7,3.23)(11.5,3.25)
\psbezier(11.3,3.27)(11.0,3.3)(10.75,3.48)
\psbezier(10.53,3.51)(10.38,3.45)(9.75,4.0)
\psbezier(9.65,4.15)(9.65,4.4)(9.8,4.55)
%\psbezier(8.87,5.9)(9.3,6.19)(9.8,6.2)

\closepath
}

% Fingernagel kleiner Finger
\pscustom[fillstyle=solid,fillcolor=red!10,linewidth=0.8pt,linecolor=black!50,opacity=1]{%
%
\psbezier(11.2,4.35)(11.35,4.15)(11.35,4.0)(11.2,3.86)
\psbezier(11.1,3.81)(11,3.76)(10.8,3.78)
\psbezier(10.1,3.84)(10.13,3.9)(10.08,4)
\psbezier(10.05,4.12)(10.05,4.4)(10.18,4.5)
\closepath
}

% Linien im kleinen Finger
{\psset{linewidth=0.8pt,linecolor=black!40}
\psbezier(12.1,4.2)(12.2,3.75)(12.2,3.75)(12.0,3.4)
\psbezier(12.35,4.15)(12.4,3.75)(12.4,3.75)(12.25,3.45)
\psbezier(13.7,4.8)(13.8,4.5)(13.8,4.5)(13.7,4.18)
}

% Ringfinger
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!50,linewidth=0.9pt,opacity=1]{%
%
\psbezier(14.65,7.1)(15.0,6.8)(15.18,6.6)(15.18,6.12)
\psbezier(15.18,5.85)(15.2,5.5)(14.2,5.0)
\psbezier(13.0,4.45)(12.8,4.45)(12.4,4.4)
\psbezier(11.6,4.25)(11.6,4.23)(10.86,4.4)
\psbezier(10.4,4.42)(10.0,4.5)(9.85,4.5)
\psbezier(9.2,4.5)(8.87,5.0)(8.87,5.5)
\psbezier(8.87,5.9)(9.3,6.19)(9.8,6.2)

\closepath
}

% Fingernagel Ringfinger
\pscustom[fillstyle=solid,fillcolor=red!10,linewidth=0.8pt,linecolor=black!50,opacity=1]{%
%
\psbezier(10.73,5)(10.73,4.83)(10.7,4.58)(9.5,4.72)
\psbezier(9.25,5.43)(9.4,5.7)(9.65,5.9)
\psbezier(10.65,5.7)(10.73,5.4)(10.73,5)
\closepath
}

% Linien im Ringfinger
{\psset{linewidth=0.8pt,linecolor=black!40}
\psbezier(11.9,5.6)(12.0,5.1)(12.0,5.0)(11.9,4.6)
\psbezier(12.2,5.55)(12.3,5.1)(12.3,5.0)(12.2,4.65)
\psbezier(14.4,6.7)(14.8,6.6)(14.92,6)(14.85,5.8)
}

% Mittelfinger
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!50,linewidth=0.9pt,opacity=1]{%
%
\psbezier(14.4,9.75)(15,9.5)(15.4,9)(15.4,8.2)
\psbezier(15.4,7.95)(15.4,7.7)(14.7,7.02)
\psbezier(14.1,6.5)(12.8,5.95)(12.4,5.95)
\psbezier(12.2,5.95)(11.9,6.02)(10.7,6.02)
\psbezier(10.5,6.02)(10.4,6.03)(10.2,6.02)
\psbezier(9.74,6.01)(9.57,6.37)(9.57,6.7)
\psbezier(9.57,7)(9.75,7.46)(10.3,7.7)
\closepath
}

% Fingernagel Mittelfinger
\pscustom[fillstyle=solid,fillcolor=red!10,linewidth=0.8pt,linecolor=black!50,opacity=1]{%
%
\psbezier(11.42,6.5)(11.42,6.02)(11,6.1)(10.7,6.05)
\psbezier(10.2,6.1)(9.95,6.2)(9.95,6.5)
\psbezier(9.95,6.8)(10.15,7.22)(10.45,7.22)
\psbezier(10.36,7.22)(10.85,7.15)(10.98,7.13)
\psbezier(11.04,7.11)(11.1,7.07)(11.25,7.0)
\psbezier(11.3,6.96)(11.42,6.8)(11.42,6.5)
\closepath
}

% Linien im Mittelfinger
{\psset{linewidth=0.8pt,linecolor=black!40}
\psbezier(12.6,7.2)(12.9,6.92)(12.85,6.6)(12.8,6.25)
\psbezier(12.9,7.2)(13.1,6.92)(13.15,6.7)(13.1,6.35)
\psbezier(14.6,9.2)(15,8.9)(15.05,8.6)(15.1,8.3)
%\psbezier(11.42,6.5)(11.42,6.02)(11,6.1)(10.7,6.05)
}

% Zeigefinger
\pscustom[fillstyle=solid,fillcolor=Haut,linestyle=none,opacity=1]{%
%
\psbezier(13.2,11.57)(14.16,11.25)(14.5,10.6)(14.4,9.75)
\psbezier(13.6,9.4)(13.5,8.95)(13,8.6)
\psbezier(12.4,8.1)(11.5,7.73)(10.8,7.73)
\psbezier(10.65,7.73)(10.4,7.7)(10.16,7.64)
\psbezier(9.7,8)(9.78,8.2)(9.78,8.35)
\psbezier(9.78,8.6)(9.9,9)(10.3,9.35)
\psbezier(11.2,10)(11.45,10.0)(11.7,10.4)
\psbezier(12.1,11)(12.6,11.48)(12.9,11.51)
\closepath
}
% Randlinie Zeigefinger
{\psset{linewidth=0.9pt,linecolor=black!50}
\psbezier(13.2,11.57)(14.16,11.25)(14.5,10.6)(14.4,9.75)
\psbezier(14.4,9.75)(13.6,9.4)(13.5,8.95)(13,8.6)
\psbezier(13,8.6)(12.4,8.1)(11.5,7.73)(10.8,7.73)
\psbezier(10.8,7.73)(10.65,7.73)(10.4,7.7)(10.16,7.64)
\psbezier(10.16,7.64)(9.7,8)(9.78,8.2)(9.78,8.35)
\psbezier(9.78,8.35)(9.78,8.6)(9.9,9)(10.3,9.35)
\psbezier(10.3,9.35)(11.2,10)(11.45,10.0)(11.7,10.4)
\psbezier(11.7,10.4)(12.1,11)(12.6,11.48)(12.9,11.51)
}

% Fingernagel Zeigefinger
\pscustom[fillstyle=solid,fillcolor=red!10,linewidth=0.8pt,linecolor=black!50,opacity=1]{%
%
\psbezier(11.7,8.45)(11.7,7.85)(10.9,7.75)(10.8,7.75)
\psbezier(10.7,7.75)(10.6,7.74)(10.48,7.72)
\psbezier(10.3,7.99)(10.35,8.1)(10.35,8.2)
\psbezier(10.36,8.77)(10.96,8.88)(11.1,8.88)
\psbezier(11.3,8.88)(11.7,8.7)(11.7,8.45)
\closepath
}

% Linien im Zeigefinger
{\psset{linewidth=0.8pt,linecolor=black!40}
\psbezier(12.2,9.6)(12.48,9.4)(12.5,9.2)(12.6,8.8)
\psbezier(12.5,9.7)(12.65,9.55)(12.7,9.4)(12.8,9.1)
\psbezier(13.6,10.8)(13.9,10.6)(14.02,10.4)(14.04,10)
}
}
\def\MainDroite{\psscalebox{-1 1}{\Main{D}}} % main droite
\def\MainGauche{\Main{G}} % main gauche
\begin{document}
\psset{unit=0.5}
\begin{pspicture}[showgrid=false](0,0)(-16,19)
\MainDroite % main droite
\end{pspicture}
\begin{pspicture}[showgrid=false](0,0)(16,19)%
\MainGauche % main gauche
\end{pspicture}
\end{document}

dimanche 28 juillet 2013

Transformations non-linéaires : déformations d'une DS Citröen par Gilg Jürgen

L'animation est liée au fichier pdf et le source est inclus dans le fichier. Elle a été réalisée avec AcroTeX, en voici une image :
Les fichiers "Citroen_anime_non_lineaire.pdf" et image de la DS sont dans :
  applications-conformes




vendredi 26 juillet 2013

Mickey à travers les...déformations spatio-temporelles



"Mickey à travers les...déformations spatio-temporelles", c'est bien sur une allusion aux fameuses histoires de "Mickey à travers les siècles" où à la fin de chaque épisode un coup sur la tête le transporte dans un autre siècle et dans un autre lieu. Cette animation m'a fait penser qu'elle pouvait illustrer ce bref passage spatio-temporel ?
Jürgen Gilg pense plutôt à une bannière, portant le sigle de Mickey, fouettée par le vent.

Rappel, tous les fichiers du package pst-nltr, ainsi que les images eps, sont dans ce répertoire :

applications-conformes

Le code :

\documentclass{article}
\usepackage{pst-nltr,multido}
\usepackage[a4paper,margin=2cm]{geometry}

\pagestyle{empty}
\begin{document}
\begin{center}
\multido{\i=0+1}{36}{
\begin{pspicture}[showgrid=false](-5,-5)(5,5)
\psframe*(-5,-5)(5,5)
\pstVerb{
/Frequence {1 36 div} bind def
/temps \i\space def % à incrémenter de 1 en 1 => 36
/FC {
/y exch def
/x exch def
/r x dup mul y dup mul add sqrt def
/Lambda 8 def            % longueur d'onde
  360 Frequence temps mul r Lambda div sub mul cos 0.75 mul
    x add
  360 Frequence temps mul r Lambda div sub mul cos 0.75 mul
    y add
} def}%
\psset{transform=FC}
\psPolygonNL[fillcolor=yellow!10,fillstyle=solid](-4,-4)(4,-4)(4,4)(-4,4)%
\psTransformGrid[linecolor=red,linestyle=dotted,dotsize=10](-4,-4)(4,4)
\pstVerb{
/FC {
/y exch cm_1 def
/x exch cm_1 def
/r x dup mul y dup mul add sqrt def
/Lambda 8 def            % longueur d'onde
   360 Frequence temps mul r Lambda div sub mul cos 0.75 mul
    x add cm
   360 Frequence temps mul r Lambda div sub mul cos 0.75 mul
    y add cm
} def}%
\psset{transform=FC}
\psTransform{mickeyC.eps}%
\psTransformText[fillstyle=solid,fillcolor=red,fontscale=0.75,pos=bc](-2,0){Mickey}%
%\psTransformText[linecolor=red,fillstyle=solid,fillcolor=red,fontscale=0.4,pos=br](1.75,3){PSTricks}%
\end{pspicture}\newpage}
\end{center}
\end{document} 


Les ondulations d'Elastoc(Tiramolla)


Une application du package pst-nltr. Rappel, tous les fichiers du package et les images eps sont dans ce répertoire :
applications-conformes

Le code permettant de générer les images nécessaires à l'animation d'Elastoc :

\documentclass{article}
\usepackage{pst-nltr,multido}
\date{26 juillet 2013}
\pagestyle{empty}
\begin{document}

\begin{center}
\multido{\r=-1+0.08}{25}{
\begin{pspicture}(-5,-5)(5,5)
\psframe*(-5,-5)(5,5)
%\psframe(-5,-5)(5,5)
\pstVerb{/FC {
/y exch def
/x exch def
x y 540 mul 3.14159 div cos \r\space mul add y 2 mul} def}%
\psset{transform=FC}
\psPolygonNL[linecolor=blue,fillstyle=solid,fillcolor=white](-2,-2)(2,-2)(2,2)(-2,2)
\psTransformGrid[linecolor=blue](-2,-2)(2,2)
\pstVerb{/FC {
/y exch cm_1 def
/x exch cm_1 def
x y 540 mul 3.14159 div cos \r\space mul add cm y 2 mul cm } def}%
\psset{transform=FC}
\psTransform{elastoc2.eps}%
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,1.5){E}
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,1){L}
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,0.5){A}
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,0){S}
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,-0.5){T}
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,-1){O}
\psTransformText[linecolor=blue,fillstyle=solid,fillcolor=green,fontscale=0.7](3,-1.5){C}
\uput[r](2.5,-4.8){\white PSTricks 2013}
\end{pspicture}\newpage}
\end{center}
\end{document}

mercredi 24 juillet 2013

Propagation d'une onde dans un dessin (suite)

 Deux animations de Jürgen Gilg au format AcroTeX(le source est inclus dans le pdf), dans la première la tour Eiffel danse le swing(Tour_Eiffel_Earthquake.pdf et Parrot_onde_Acrotex.pdf)

applications-conformes

Mickey est toujours à l'ouvrage:




Le code :

\documentclass{article}
\usepackage{pst-nltr,multido}

\pagestyle{empty}
\begin{document}
\begin{center}
\multido{\it=0+1}{36}{%
\begin{pspicture}(-4,-4)(4,5)
\psframe*[linecolor=yellow!10](-4,-4)(4,5)
\psframe(-4,-4)(4,5)
\pstVerb{
/Frequence {1 36 div} bind def
/Lambda 6 def  % longueur d'onde
/FC {
/y exch cm_1 3 sub def
/x exch cm_1 3 sub def
   360 Frequence \it\space mul x Lambda div sub mul cos 0.75 mul
    x add cm
   360 Frequence \it\space mul y Lambda div sub mul cos 0.75 mul
    y add cm
} def}%
\psset{transform=FC}
\psTransform{mickey.eps}%
\pstVerb{
/FC {
/y exch def
/x exch def
  360 Frequence \it\space mul x Lambda div sub mul cos 0.75 mul
    x add
  360 Frequence \it\space mul y Lambda div sub mul cos 0.75 mul
    y add
} def}%
\psset{transform=FC}
\psTransformGrid[linecolor=red,linestyle=dotted,dotsize=10](-3,-3)(3,4)
\end{pspicture}\newpage}
\end{center}
\end{document} 



Propagation d'une onde longitudinale horizontale dans un dessin

Variante du message précédent, Mickey garde le sourire, mais j'ai un peu mal au cœur en regardant ces animations...




Le code :

\documentclass{article}
\usepackage{pst-nltr,multido}

\pagestyle{empty}
\begin{document}
\begin{center}
\multido{\it=0+1}{36}{%
\begin{pspicture}(-4,-4)(4,5)
\psframe*[linecolor=yellow!10](-4,-3.3)(4,4.2)
\psframe(-4,-3.3)(4,4.2)
\pstVerb{
/Frequence {1 36 div} bind def
/Lambda 6 def  % longueur d'onde
/FC {
/y exch cm_1 3 sub def
/x exch cm_1 3 sub def
  360 Frequence \it\space mul x Lambda div sub mul cos 0.75 mul
    x add cm
    y cm %2 mul
} def}%
\psset{transform=FC}
\psTransform{mickey.eps}%
\psTransformText[linecolor=red,fontscale=1,fillstyle=solid,fillcolor=blue,pos=bc](3,0){Mickey}%
\psTransformText[fontscale=0.2,pos=cc](5.5,6.8){PSTricks}%
\pstVerb{
/FC {
/y exch def
/x exch def
  360 Frequence \it\space mul x Lambda div sub mul cos 0.75 mul
    x add
    y
} def}%
\psset{transform=FC}
\psTransformGrid[linecolor=red,linestyle=dotted,dotsize=10](-3,-3)(3,4)
\end{pspicture}\newpage}
\end{center}
\end{document} 

mardi 23 juillet 2013

Propagation d'une onde longitudinale verticale dans un dessin

C'est une suggestion de Jürgen qui est mise en pratique ici : le résultat est amusant, gare au mal de mer...

Le fichier source :

\documentclass{article}
\usepackage{pst-nltr,multido}

\pagestyle{empty}
\begin{document}
\begin{center}
\multido{\it=0+1}{36}{%
\begin{pspicture}(-4,-4)(4,5)
\psframe*[linecolor=yellow!10](-3,-4)(3,5)
\psframe(-3,-4)(3,5)
\pstVerb{
/Frequence {1 36 div} bind def
/Lambda 6 def  % longueur d'onde
/FC {
/y exch cm_1 3 sub def
/x exch cm_1 3 sub def
    x cm
   360 Frequence \it\space mul y Lambda div sub mul cos 0.75 mul
    y add cm
} def}%
\psset{transform=FC}
\psTransform{mickey.eps}%
\pstVerb{
/FC {
/y exch def
/x exch def
    x
  360 Frequence \it\space mul y Lambda div sub mul cos 0.75 mul
    y add
} def}%
\psset{transform=FC}
\psTransformGrid[linecolor=red,linestyle=dotted,dotsize=10](-3,-3)(3,4)
\end{pspicture}\newpage}
\end{center}
\end{document}

mickey.eps est ici dans le sous-dossier juillet2013 du dossier :
Rappel, tous les fichiers du package sont dans le dossier indiqué ci-dessus.
La variante AcroTeX par Jürgen Gilg (le fichier source est inclus dans le pdf) est dans le même sous-dossier juillet2013.

Transformations de textes : deux applications de Gilg Jürgen

Voici deux applications(2 animations) sur les déformations de textes, au format AcroTeX par Gilg Jürgen. Les fichiers sources sont inclus dans le pdf :

http://manuel.luque.perso.neuf.fr/applicationsconformes/juillet2013/AcroTEX_in_waves.pdf
http://manuel.luque.perso.neuf.fr/applicationsconformes/juillet2013/AcroTEX_opens.pdf

Et enfin, l'animation suivante est inspirée par le deuxième exemple de Gilg Jürgen :


Voici le fichier ayant servi à générer les images du Gif animé :

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{multido}

\usepackage{pst-nltr}

\pagestyle{empty}
\begin{document}
\begin{center}
\psset{unit=0.75}
\multido{\i=1+1,\rt=1.54+-0.02}{144}{%
\begin{pspicture}(-8.5,-4)(8.5,5.5)
\psframe*(-8.5,-4)(8.5,5.5)
\pstVerb{
/coeff \rt\space def
/FC {
/y exch def
/x exch def
 x coeff mul y x abs 0.7 mul 2 add mul
} def}%
\psset{transform=FC}
\psPolygonNL[linecolor=red,,fillstyle=solid,fillcolor={[rgb]{0.6875 0.875 0.7125}}](-5.33,-0.5)(5.33,-0.5)(5.33,0.5)(-5.33,0.5)
\pstVerb{
/coeff \rt\space def
/FC {
/y exch def
/x exch def
 x coeff mul
 y x abs 0.05 mul 2 add mul
} def}%
\psset{transform=FC}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.25 0.75 0.25}},linewidth=0.01,fontscale=1,pos=cc,PSfont=Helvetica](0,0){Un effet de perspective}%
\end{pspicture}\newpage}
\end{center}
\end{document}

vendredi 19 juillet 2013

Transformations de texte : un effet de perspective

Le code :

\documentclass{article}
\usepackage{pst-nltr}
\usepackage[a4paper,margin=2cm]{geometry}

\begin{document}
\begin{center}
\begin{pspicture}(-8,-3)(8,5)
\psframe(-8,-3)(8,5)
\pstVerb{
/FC {
/y exch def
/x exch def
 x 1.5 mul y x abs 0.05 mul 2 add mul
} def}%
\psset{transform=FC}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.25 0.75 0.25}},fontscale=1,pos=cc,PSfont=Helvetica](0,0){Un effet de perspective}%
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=5pt](-8,-3)(8,5)
\pstVerb{
/FC {
/y exch def
/x exch def
 x 1.5 mul y x abs 0.7 mul 2 add mul
} def}%
\psset{transform=FC}
\psLineNL[linecolor=red](-5.33,-0.5)(5.33,-0.5)
\psLineNL[linecolor=red](-5.33,0.5)(5.33,0.5)
\end{pspicture}
\end{center}
\end{document}

Je rappelle que le package pst-nltr est disponible (pst-nltr.pro, pst-nltr.sty et pst-nltr.tex avec la documentation) ici dans le sous-dossier juillet2013 du dossier :



Propagation d'une onde longitudinale le long d'un texte

C'est encore une application du package pst-nltr dédié aux transformations conformes et d'une façon plis générale aux transformations non-linéaires.
Je rappelle que le package pst-nltr est disponible (pst-nltr.pro, pst-nltr.sty et pst-nltr.tex avec la documentation) ici :

applications-conformes

L'exemple suivant est la suite du message précédent illustrant la propagation d'ondes transversales sinusoïdales le long d'un texte :

http://pstricks.blogspot.fr/2013/07/transformations-non-lineaires-de-textes.html

Le code permettant de générer les images nécessaires à l'animation ci-dessous :


\documentclass{article}
\usepackage{pst-nltr,multido}
\usepackage[a4paper,margin=2cm]{geometry}
\pagestyle{empty}
\begin{document}
\def\Dalle{\psframe[linecolor=yellow!50,fillstyle=solid,fillcolor={[rgb]{0.8 0.1 0 }}](\rX,\rY)(!\rX\space 0.7 add \rY\space -0.25 add)}
\def\MURB{\psclip{\psframe[linestyle=none](-8,-2)(7.5,0)}
    \multido{\rY=0+-0.5}{2}{\multido{\rX=-8+0.7}{23}{\Dalle}}
    \multido{\rY=-0.25+-0.5}{2}{\multido{\rX=-8.35+0.7}{23}{\Dalle}}
    \endpsclip}
\begin{center}
\multido{\it=0+1}{36}{
\begin{pspicture}(-8,-1)(7.5,2.5)
\psframe(-8,-1)(7.5,2.2)
\pstVerb{
/Frequence {1 36 div} bind def
/temps \it\space def % à incrémenter de 1 en 1 => 36
/FC {
/y exch def
/x exch def
/Lambda warpwidth 2 div def            % longueur d'onde
  360 Frequence temps mul x Lambda div sub mul cos 20 mul
    x add
    y 2 mul
} def}%
\psset{transform=FC}
\MURB
\rput(0,2.2){\MURB}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.6 1 1}},fontscale=0.8,pos=bc,PSfont=Helvetica](0,0){propagation d'une onde longitudinale}%
\end{pspicture}\newpage}
\end{center}
\end{document}


jeudi 18 juillet 2013

Transformations non-linéaires de textes : exemples

Deux exemples de textes se déformant sous l'effet d'une onde sinusoïdale progressive. (Nous avions déjà, Jean-Michel Sarlat, Jean-Paul Vignault et Arnaud Schmittbuhl et moi-même traité ce sujet, il y a quelques années, en postscript pur).
 Sous forme d'animation au format Gif :



Le code :
\documentclass{article}
\usepackage{pst-nltr,pst-plot}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
\def\Dalle{\psframe[linecolor=yellow,fillstyle=solid,fillcolor={[rgb]{0.8 0.1 0 }}](\rX,\rY)(!\rX\space 0.7 add \rY\space -0.25 add)}
\begin{center}
\begin{pspicture}(-6,-1.5)(6,2.5)
\psframe(-6,-1)(6,2.1)
\pstVerb{
/nbrOscillations 3 def
/pas 0 def
/FC {
/y exch def
/x exch def
%% (x, y) --> (x, (y - decalage_vertical) *(2 + cos (x * N * periode)))
x x 360 mul warpwidth div 3 mul pas add cos 2 add y mul
} def}%
\psset{transform=FC}
\psclip{\psframe[linestyle=none](-6,-2)(6,0)}
\multido{\rY=0+-0.5}{2}{\multido{\rX=-6+0.7}{18}{\Dalle}}
\multido{\rY=-0.25+-0.5}{2}{\multido{\rX=-6.35+0.7}{18}{\Dalle}}
\endpsclip
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.6 1 1}},fontscale=1,pos=bc](0,0){onde progressive sinusoïdale}%
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt](-6,-1)(6,2)
\end{pspicture}

\begin{pspicture}(-6,-2)(6,2.5)
\psframe(-6,-2)(6,2.1)
\pstVerb{
/nbrOscillations 3 def
/pas 90 def
/FC {
/y exch def
/x exch def
x x 360 mul warpwidth div 3 mul pas add cos 2 add y mul
} def}%
\psset{transform=FC}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.6 1 1}},fontscale=1,pos=cc](0,0){onde progressive sinusoïdale}%
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt](-6,-2)(6,2)
\end{pspicture}
\end{center}
\end{document}

Le code pour produire les images nécessaires aux animations :

\documentclass{article}
\usepackage{pst-nltr,multido}
\pagestyle{empty}
\begin{document}
\def\Dalle{\psframe[linecolor=yellow,fillstyle=solid,fillcolor={[rgb]{0.8 0.1 0 }}](\rX,\rY)(!\rX\space 0.7 add \rY\space -0.25 add)}
\def\MUR{\psclip{\psframe[linestyle=none](-6,-2)(5.9,0)}
    \multido{\rY=0+-0.5}{2}{\multido{\rX=-6+0.7}{18}{\Dalle}}
    \multido{\rY=-0.25+-0.5}{2}{\multido{\rX=-6.35+0.7}{18}{\Dalle}}}
\begin{center}
\multido{\iPas=0+10}{36}{%
\begin{pspicture}(-6,-1.5)(6,2.5)
\pstVerb{
/nbrOscillations 3 def
/pas \iPas\space def
/FC {
/y exch def
/x exch def
%% (x, y) --> (x, (y - decalage_vertical) *(2 + cos (x * N * periode)))
x x 360 mul warpwidth div 3 mul pas add cos 2 add y mul
} def}%
\psset{transform=FC}
\MUR%
\endpsclip
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.6 1 1}},fontscale=1,pos=bc](0,0){onde progressive sinusoïdale}%
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt](-6,-1)(6,2)
\psframe(-6,-1)(6,2.1)
\end{pspicture}\newpage}
\end{center}
\end{document}

=========================================


\documentclass{article}
\usepackage{pst-nltr,multido}
\pagestyle{empty}
\begin{document}
\begin{center}
\multido{\iPas=0+10}{36}{%
\begin{pspicture}(-6,-2)(6,2.5)
\psframe*[linecolor=yellow!20](-6,-2)(6,2.1)
\pstVerb{
/nbrOscillations 3 def
/pas \iPas\space def
/FC {
/y exch def
/x exch def
%% (x, y) --> (x, (y - decalage_vertical) *(2 + cos (x * N * periode)))
x x 360 mul warpwidth div 3 mul pas add cos 2 add y mul
} def}%
\psset{transform=FC}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.6 1 1}},fontscale=1,pos=cc](0,0){onde progressive sinusoïdale}%
\psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=0pt](-6,-1)(6,2)
\psframe(-6,-2)(6,2.1)
\end{pspicture}\newpage}
\end{center}
\end{document}

============================================


Le package pst-nltr est disponible (pst-nltr.pro, pst-nltr.sty et pst-nltr.tex avec la documentation) ici :
applications-conformes

Règle des 3 doigts de la main droite ou de la main gauche

La règle des 3 doigts de la main droite ou de la main gauche, utilisées pour illustrer un repère direct, la loi de Laplace, la force de Lorentz etc. dessinée avec les outils de PSTricks par Thomas Söll.
On notera, délicate attention de Thomas,  que les ongles des majeur, annulaire et auriculaire ont été vernis aux couleurs de drapeau français : bleu, blanc, rouge.



 Un procédé mnémotechnique de mémoriser cette règle de la main gauche, pour la force de Laplace est de se dire :

Bien Indiquer la Force

En ouvrant les doigts, naturellement dans l'ordre, en commençant par le pouce pour B, puis index pour I et enfin le majeur pour F.

Le code :

\documentclass{article}

\usepackage{pstricks,pst-node}

\begin{document}
\psset{unit=1}
\def\RechteHand{%
\definecolor{Haut}{rgb}{1,0.894,0.769}%

\begin{psclip}
{\pspolygon[linestyle=none](0.2,0.2)(0.2,5)(1.6,6.4)(7,6.4)(7,0.2)}
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!90,linewidth=0.8pt,opacity=0.5]{%
%
%\psset{showpoints}
% Hals links
\psbezier(0.1,4.95)(0.6,4.5)(1.8,4.15)(1.8,3.65)
\psbezier(1.8,2.75)(1.9,3.15)(1.9,2.55)
\psbezier(1.9,2.35)(2.25,2.15)(2.25,1.65)
\psbezier(2.25,1.4)(1.65,0.8)(1.65,0.75)
\psbezier(1.65,0.6)(1.8,0.54)(1.9,0.5)
\psbezier(2,0.44)(2.5,0.6)(2.7,1.05)
\psbezier(3,1.45)(3,1.5)(3,1.8)
\psbezier(3.05,2.1)(3.1,2.1)(3.4,2)
\psbezier(3.6,2)(3.6,1.95)(3.8,1.95)
\psbezier(3.85,1.95)(4.1,1.85)(4.2,1.85)
\psbezier(4.4,1.85)(4.5,1.95)(5,2)
\psbezier(5.4,1.95)(5.5,1.95)(5.8,1.96)
\psbezier(6.55,1.92)(6.7,1.94)(6.7,2.2)
\psbezier(6.7,2.45)(6.1,2.5)(5.9,2.43)
\psbezier(5.8,2.47)(5.2,2.55)(5.1,2.5)
\psbezier(5.0,2.55)(5,2.57)(4.9,2.6)%  wichtige Endpunkte f\"{u}r Mittelfinger
\psbezier(4.95,3.0)(4.95,3.0)(4.9,3.6)%  wichtige Endpunkte f\"{u}r Start des Mittelfingers
\psbezier(4.93,4.0)(4.9,4.0)(4.85,4.5)
\psbezier(4.83,4.8)(4.8,4.6)(4.78,5)% Fingernagel Mittelfinger
\psbezier(4.76,5.2)(4.8,5.0)(4.75,5.35)% Fingernagel Mittelfinger
\psbezier(4.35,5.57)(4.23,5.0)(4.33,4.5)
\psbezier(4.3,4.38)(4.31,4.4)(4.3,4.18)
\psline(4.3,4.18)(4.25,4.16)
\psbezier(4,4.5)(3.4,4.7)(3,4.75)
\psbezier(2.8,4.8)(2.65,5.03)(2.6,5.05)
\psbezier(2.4,5.15)(1.75,5.8)(1.3,6.25)
\closepath
}
\end{psclip}
% Fingernagel Mittelfinger
\pscustom[fillstyle=solid,fillcolor=red,linecolor=black!90,linewidth=0.3pt,opacity=1]{%
\psbezier(4.75,5.35)(4.6,5.32)(4.56,5.25)(4.56,5.17)
\psbezier(4.56,4.95)(4.6,4.98)(4.79,5)
\closepath
}
% Fingernagel Ringfinger
\pscustom[fillstyle=solid,fillcolor=white,linecolor=black!90,linewidth=0.3pt,opacity=1]{%
\psbezier(3.53,3.9)(3.46,3.7)(3.4,3.69)(3.25,3.68)
\psbezier(3.2,3.675)(3.17,3.7)(3.23,3.8)
\psbezier(3.3,3.87)(3.33,3.87)(3.4,3.88)
\psbezier(3.5,3.9)(3.5,3.91)(3.53,3.9)
\closepath
}

% Fingernagel kleiner Finger
\pscustom[fillstyle=solid,fillcolor=blue,linecolor=black!90,linewidth=0.3pt,opacity=1]{%
\psbezier(4.02,4.12)(4.02,4.0)(3.84,3.96)(3.9,3.97)
\psbezier(3.82,3.95)(3.69,3.94)(3.7,3.96)
\psbezier(3.75,4.07)(3.74,4.04)(3.82,4.08)
\closepath
}
% Fingernagel Daumen
\pscustom[fillstyle=solid,fillcolor=red!20,linecolor=black!90,linewidth=0.3pt,opacity=1]{%
\psbezier(1.92,1.085)(1.93,1.02)(1.8,0.85)(1.66,0.7)
\psbezier(1.64,0.8)(1.64,0.74)(1.92,1.085)
\closepath
}
% Fingernagel Zeigefinger
\pscustom[fillstyle=solid,fillcolor=red!20,linecolor=black!90,linewidth=0.3pt,opacity=1]{%
\psbezier(6.25,1.95)(6.3,2)(6.5,2.01)(6.65,2)
\psbezier(6.63,1.93)(6.35,1.94)(6.25,1.95)
\closepath
}
% Mittelfinger
\psbezier(4.9,2.6)(4.85,2.61)(4.85,2.61)(4.8,2.62)
\psbezier(4.8,2.62)(4.7,2.63)(4.5,2.68)(4.39,2.65)
\psbezier(4.39,2.65)(4.2,3)(4.35,3.5)(4.36,3.6)
\psbezier(4.36,3.6)(4.3,4.0)(4.3,4)(4.3,4.18)
\psbezier(4.8,2.62)(4.85,3)(4.85,3)(4.9,3.5)
%  Linien im Mittelfinger
{\psset{linewidth=0.4pt,linecolor=black!50}
\psbezier(4.85,4.6)(4.8,4.59)(4.75,4.59)(4.7,4.56)
\psbezier(4.85,4.5)(4.8,4.49)(4.75,4.49)(4.7,4.47)
%
\psbezier(4.89,3.8)(4.84,3.79)(4.79,3.79)(4.74,3.76)
\psbezier(4.89,3.7)(4.84,3.69)(4.79,3.69)(4.74,3.67)
\psbezier(4.89,3.6)(4.84,3.59)(4.79,3.58)(4.74,3.59)
}
% kleiner Finger
\psbezier(4.25,4.16)(4.15,4.15)(4.1,4.14)(4.02,4.12)

% Ringfinger
\psbezier(4.3,4.02)(4.23,4.01)(4.2,4.02)(4.0,3.98)
\psbezier(4.0,3.98)(3.8,3.97)(3.7,3.95)(3.53,3.9)
%
\psbezier(4.35,3.57)(4.23,3.51)(4.2,3.51)(4,3.54)
\psbezier(4,3.54)(3.4,3.4)(3.12,3.5)(3.2,3.7)
% Linie im Ringfinger
{\psset{linewidth=0.4pt,linecolor=black!50}
\psbezier(4,3.97)(3.9,3.94)(3.9,3.84)(3.88,3.8)
}
% Linien in Zeigefinger und Daumen
{\psset{linewidth=0.4pt,linecolor=black!50}
\psbezier(5.9,2.41)(5.86,2.35)(5.84,2.29)(5.83,2.25)
\psbezier(5.1,2.5)(5.04,2.43)(5.03,2.44)(5.0,2.35)
\psbezier(3.15,2.05)(3.24,2.23)(3.4,2.35)(3.5,2.4)
\psbezier(3.05,2.05)(3.03,2.13)(3.07,2.38)(3.1,2.45)
\psbezier(2.7,1.05)(2.63,1.08)(2.55,1.2)(2.45,1.2)
% Linien in der Handfl\"{a}che
\psbezier(2.1,3.8)(2.05,4.0)(2.4,4.4)(2.8,4.5)
\psbezier(2.83,4.12)(3,4.22)(3.15,4.0)(3.25,3.83)
}
\psline[linewidth=0.8pt,linecolor=red,arrowscale=1.2,arrowlength=1.6,arrowinset=0.05]{->}(4.6,2.2)(4.6,6)
\pnode(4.6,6){majeur}
\pnode(7,2.2){index}
\pnode(3,0.6){pouce}
\psline[linewidth=0.8pt,linecolor=blue,arrowscale=1.2,arrowlength=1.6,arrowinset=0.05]{->}(4.6,2.2)(7,2.2)
\psline[linewidth=0.8pt,linecolor=green,arrowscale=1.2,arrowlength=1.6,arrowinset=0.05]{->}(4.6,2.2)(3,0.6)
}
\begin{pspicture}(0,0)(8,7)
\psframe(0,0)(8,7)
\RechteHand %
\uput[u](majeur){\overrightarrow{B}}
\uput[r](index){\overrightarrow{F}}
\uput[dl](pouce){\overrightarrow{I}}
\end{pspicture}

\begin{pspicture}(-8,7)(0,0)
\psframe(-8,7)(0,0)
\psscalebox{-1 1}{\RechteHand }
\uput[u](majeur){\overrightarrow{F}}
\uput[l](index){\overrightarrow{I}}
\uput[dr](pouce){\overrightarrow{B}}
\end{pspicture}

\end{document}

mercredi 17 juillet 2013

Transformations non-linéaires : mises à jour

C'est une mise à jour du package pst-nltr qui traite des applications conformes et des transformations non-linéaires. Elle porte essentiellement sur les transformations non-linéaires d'un texte. En voici quelques exemples :

Les fichiers sont dans le sous-dossier `juillet2013' du dossier :
/

dimanche 14 juillet 2013

Éve à la plage, dessinée avec PSTricks par Thomas Söll


 Le même modèle dont les fichiers (Woman2.pdf Woman2.tex) sont dans l'archive :


Pour le garçon, voir le message précédent. Voici le code PSTricks de l'Éve ci-dessus :

\documentclass{article}
\usepackage[paperwidth=21cm,paperheight=30cm,left=1.5cm,textwidth=18cm,textheight=27cm]{geometry}
\usepackage{pstricks}
\begin{document}

\definecolor{Weiss}{rgb}{1,0.98,0.98}%     255 250 250
\definecolor{Haut}{rgb}{1,0.894,0.769}% 255 228 196
\definecolor{Auge}{rgb}{0.54,0.27,0.074}% 139 69 19
\psset{unit=1.25}
\begin{pspicture}(-3,0)(3,16)

\rput(0,0.89){%
\psscalebox{0.94}{%
% Haare hinterm Kopf
\pscustom[fillstyle=solid,fillcolor=yellow!50!brown!50,linecolor=brown!50,linewidth=0.5pt]{%
\psbezier(0,16)(-0.5,16)(-0.8,15.5)(-0.9,15)
\psbezier(-1.1,14)(-1,14)(-1.3,13.4)
\psline(-1.3,13.4)(0.7,13.4)
\psbezier(0.6,13.8)(0.75,13.9)(0.8,14.4)
\psbezier(0.9,15)(0.9,16)(0,16)
\closepath
}
}}

% Hals, Arme, Bauch
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!90,linewidth=0.8pt]{%
%
%\psset{showpoints}
% Hals links
\psbezier(-0.295,14.2)(-0.295,13.5)(-0.6,13.6)(-1.2,13.5)
\psbezier(-1.8,13.4)(-1.83,12.6)(-1.9,12)
\psline(-1.9,12)(-2.0,10.1)
% linker Unterarm mit Hand
\psbezier(-2.1,9.5)(-2.1,8.8)(-2.1,8)
\psbezier(-2.19,7.7)(-2.2,7.7)(-2.2,7.4)
\psbezier(-2.2,7.25)(-2.2,7.25)(-2.19,7.1)
\psbezier(-2.2,6.94)(-2.2,6.94)(-2.18,6.8)
\psbezier(-2.1,6.8)(-2.09,6.9)(-2.1,7.4)
\psline(-2.1,7.2)(-2.09,6.85)
\psbezier(-2.04,6.85)(-2.01,7.03)(-2.04,7.1)
\psline(-2.04,7.1)(-2,7.4)(-2.03,7.6)
\psbezier(-1.98,7.4)(-1.99,7.05)(-1.97,6.98)
\psbezier(-1.93,6.98)(-1.83,6.89)(-1.84,7.4)
%\psbezier(-1.79,7.3)(-1.79,7.3)(-1.8,7.4)
\psbezier(-1.76,7.7)(-1.76,7.7)(-1.77,8)

\psbezier(-1.67,9)(-1.67,9)(-1.6,10.05)
\psbezier(-1.4,11)(-1.45,11)(-1.3,12)

% linker Oberarm zum K\"{o}rper Brustkorb und Bauch links bis zur H\"{u}fte links
%\psline(-1.65,10.05)(-1.3,12)
\psbezier(-1.2,12.5)(-1.2,12.4)(-1.15,12.6)
\psbezier(-1.15,11.9)(-0.94,11.5)(-0.94,10.8)
\psline(-0.94,10.8)(-0.94,10.2)
\psbezier(-0.94,9.2)(-1.3,9)(-1.3,7.8)

% Beine von H\"{u}fte links
\psbezier(-1.3,6.8)(-0.8,5.5)(-0.8,4)
\psbezier(-0.8,3.6)(-0.85,3.4)(-0.85,3)
\psbezier(-0.85,2.4)(-0.65,1.5)(-0.65,1)
\psbezier(-0.65,0.9)(-1,0.5)(-1,0.4)
\psbezier(-0.9,0)(-0.9,0)(-0.7,0)
\psbezier(-0.6,0)(-0.5,0.1)(-0.45,0.2)
\psbezier(-0.3,0.3)(-0.2,0.9)(-0.2,1)
\psbezier(-0.2,1.06)(-0.24,1.14)(-0.24,1.2)
\psbezier(-0.24,1.8)(-0.1,2.2)(-0.1,2.8)
\psbezier(-0.1,3.2)(-0.15,3.65)(-0.15,4)
\psline(-0.15,4)(-0.03,7.4)
\psbezier(-0.03,7.9)(0.03,7.9)(0.03,7.4)
\psline(0.03,7.4)(0.15,4)
\psbezier(0.15,3.65)(0.1,3.2)(0.1,2.8)
\psbezier(0.1,2.2)(0.24,1.8)(0.24,1.2)
\psbezier(0.24,1.14)(0.2,1.06)(0.2,1)
\psbezier(0.2,0.9)(0.3,0.3)(0.45,0.2)
\psbezier(0.5,0.1)(0.6,0)(0.7,0)
\psbezier(0.9,0)(0.9,0)(1,0.4)
\psbezier(1,0.5)(0.65,0.9)(0.65,1)
\psbezier(0.65,1.5)(0.85,2.4)(0.85,3)
\psbezier(0.85,3.4)(0.8,3.6)(0.8,4)
\psbezier(0.8,5.5)(1.3,6.8)(1.3,7.8)

% rechte H\"{u}fte bis Achsel
\psbezier(1.3,9)(0.94,9.2)(0.94,10.2)
\psline(0.94,10.2)(0.94,10.8)
\psbezier(0.94,11.5)(1.15,12.4)(1.15,12.6)


% rechter Arm + Hand ab Achsel

\psbezier(1.2,12.4)(1.2,12.5)(1.3,12)

\psbezier(1.45,11)(1.4,11)(1.6,10.05)
\psbezier(1.67,9)(1.67,9)(1.77,8)
\psbezier(1.76,7.7)(1.76,7.7)(1.84,7.4)
\psbezier(1.83,6.89)(1.93,6.98)(1.97,6.98)
\psbezier(1.99,7.05)(1.98,7.4)(2.03,7.6)
\psline(2.03,7.6)(2,7.4)(2.04,7.1)
\psbezier(2.01,7.03)(2.04,6.85)(2.09,6.85)
\psline(2.09,6.85)(2.1,7.2)(2.1,7.4)
\psbezier(2.09,6.9)(2.1,6.8)(2.18,6.8)
\psbezier(2.2,6.94)(2.2,6.94)(2.19,7.1)
\psbezier(2.2,7.25)(2.2,7.25)(2.2,7.4)
\psbezier(2.2,7.7)(2.19,7.7)(2.1,8)
\psbezier(2.15,8.3)(2.1,9.5)(2.0,10.1)

% rechter Arm au{\ss}en ab Armgelenk bis Hals
\psline(2.0,10.1)(1.9,12)
\psbezier(1.83,12.6)(1.8,13.4)(1.2,13.5)
\psbezier(0.6,13.6)(0.295,13.5)(0.295,14.2)

\closepath
}

% Linie in der linken Hand von Zeigefinger
\psbezier(-2.1,7.4)(-2.07,7.5)(-2,7.55)(-2.02,7.58)
% Linie in der rechten Hand von Zeigefinger
\psbezier(2.1,7.4)(2.07,7.5)(2,7.55)(2.02,7.58)

{\psset{linecolor=black!40,linewidth=0.5pt}
% Linie in der linken Armbeuge
\psbezier(-1.7,10.0)(-1.8,9.97)(-1.8,9.99)(-1.9,10.03)
% Linie in der rechten Armbeuge
\psbezier(1.7,10.0)(1.8,9.97)(1.8,9.99)(1.9,10.03)
}

% Kniescheibe
{\psset{linecolor=black!40,linewidth=0.7pt}
\psbezier(-0.6,4.5)(-0.64,4.45)(-0.7,4.4)(-0.58,4)
\psbezier(-0.3,4.5)(-0.22,4.3)(-0.22,4.2)(-0.3,4)
\psbezier(0.6,4.5)(0.64,4.45)(0.7,4.4)(0.58,4)
\psbezier(0.3,4.5)(0.22,4.3)(0.22,4.2)(0.3,4)
}

% Linien am Hals
{\psset{linecolor=black!40,linewidth=0.6pt}
\psbezier(-0.2,13.9)(-0.14,13.75)(-0.15,13.8)(-0.15,13.7)
\psbezier(0.2,13.9)(0.14,13.75)(0.15,13.8)(0.15,13.7)
\psbezier(-0.15,13.55)(-0.1,13.48)(0.1,13.48)(0.15,13.55)
\psbezier(-0.5,13.45)(-0.3,13.45)(-0.2,13.35)(0,13.35)
\psbezier(0.5,13.45)(0.3,13.45)(0.2,13.35)(0,13.35)
}

% Bauchnabel
\psellipse[fillstyle=solid,fillcolor=black!40,linestyle=none](0,9.6)(0.05,0.07)

% B\"{u}ste
\pscustom[fillstyle=solid,fillcolor=Haut,linestyle=none]{%
\psbezier(-1.06,12.13)(-1.22,11.7)(-1.1,11.25)(-0.7,11.25)
\psbezier(-0.1,11.25)(0,11.6)(-0.1,12.2)
\closepath
}
\pscustom[fillstyle=solid,fillcolor=Haut,linestyle=none]{%
\psbezier(1.05,12.13)(1.22,11.7)(1.1,11.25)(0.7,11.25)
\psbezier(0.1,11.25)(0,11.6)(0.1,12.2)
\closepath
}
{\psset{linecolor=black!70,linewidth=0.7pt}
\psbezier(-1.06,12.13)(-1.22,11.7)(-1.1,11.25)(-0.7,11.25)
\psbezier(-0.7,11.25)(-0.1,11.25)(0,11.6)(-0.1,12.2)
\pscircle[fillstyle=solid,fillcolor=brown,linestyle=none](-0.73,11.61){2.7pt}

\psbezier(1.05,12.13)(1.22,11.7)(1.1,11.25)(0.7,11.25)
\psbezier(0.7,11.25)(0.1,11.25)(0,11.6)(0.1,12.2)
\pscircle[fillstyle=solid,fillcolor=brown,linestyle=none](0.73,11.61){2.7pt}
}

\rput(0.08,1.45){%
\psscalebox{0.9}{%
% Kopf
\pscustom[fillstyle=solid,fillcolor=Haut,linecolor=black!90,linewidth=0.8pt]{%
%
%\psset{showpoints}
\psbezier(0,13.95)(-0.3,13.95)(-0.65,14.5)(-0.65,14.9)
\psbezier(-0.65,15.3)(-0.5,15.8)(0,15.8)
\psbezier(0.5,15.8)(0.65,15.3)(0.65,14.9)
\psbezier(0.65,14.5)(0.3,13.95)(0,13.95)
\closepath
}

\def\AugeR{%
\begin{psclip}{%
\pscustom[fillstyle=solid,fillcolor=Weiss,linecolor=black,linewidth=0.2pt]{%
\psbezier(0.05,0)(0.04,0.004)(0.02,0.02)(0,0.02)
\psbezier(-0.02,0.02)(-0.04,0.01)(-0.05,-0.005)
\psbezier(-0.047,0)(-0.02,-0.018)(0,-0.018)
\psbezier(0.02,-0.018)(0.04,-0.006)(0.05,0)
\closepath
}
}
\pscircle[linestyle=none,fillstyle=solid,fillcolor=Auge](0,0.002){0.024}
\pscircle[linewidth=0.2pt,linecolor=black!60,fillstyle=solid,fillcolor=black](0.001,0.001){0.012}
\end{psclip}
\pspolygon[linewidth=0.06pt,linecolor=black!90,fillstyle=solid,fillcolor=white](0.009,0.003)(0.01,0.014)(-0.002,0.014)(-0.002,0.003)
\pspolygon[linewidth=0.06pt,linecolor=black!90,fillstyle=solid,fillcolor=white](-0.004,0.003)(-0.004,0.014)(-0.012,0.014)(-0.012,0.003)
\psbezier[linewidth=0.1pt](0.05,0.01)(0.044,0.03)(-0.02,0.05)(-0.05,0.005)
\psbezier[linewidth=0.3pt](0.05,0.035)(0.044,0.05)(-0.02,0.055)(-0.05,0.04)
}

\def\AugeL{%
\begin{psclip}{%
\pscustom[fillstyle=solid,fillcolor=Weiss,linecolor=black,linewidth=0.2pt]{%
\psbezier(-0.05,0)(-0.04,0.004)(-0.02,0.02)(0,0.02)
\psbezier(0.02,0.02)(0.04,0.01)(0.05,-0.005)
\psbezier(0.047,0)(0.02,-0.018)(0,-0.018)
\psbezier(-0.02,-0.018)(-0.04,-0.006)(-0.05,0)
\closepath
}
}
\pscircle[linestyle=none,fillstyle=solid,fillcolor=Auge](0,0.002){0.024}
\pscircle[linewidth=0.2pt,linecolor=black!60,fillstyle=solid,fillcolor=black](0.001,0.001){0.012}
\end{psclip}
\pspolygon[linewidth=0.06pt,linecolor=black!90,fillstyle=solid,fillcolor=white](-0.009,0.003)(-0.01,0.014)(0.002,0.014)(0.002,0.003)
\pspolygon[linewidth=0.06pt,linecolor=black!90,fillstyle=solid,fillcolor=white](0.004,0.003)(0.004,0.014)(0.012,0.014)(0.012,0.003)
\psbezier[linewidth=0.1pt](-0.05,0.01)(-0.044,0.03)(0.02,0.05)(0.05,0.005)
\psbezier[linewidth=0.3pt](-0.05,0.035)(-0.044,0.05)(0.02,0.055)(0.05,0.04)
}

\rput{-5}(-0.25,15){\psscalebox{2.6}{\AugeL}}
\rput{5}(0.25,15){\psscalebox{2.6}{\AugeR}}

% Mund
\rput(0,14.37){%
\psscalebox{2.1}{%
\pscustom[fillstyle=solid,fillcolor=red!40,linestyle=none]{%
\psline(-0.085,0.01)(-0.04,0.03)(0,0.023)(0.04,0.03)(0.08,0.004)(0.08,0.005)(0.08,-0.005)
\psbezier(0.04,-0.04)(-0.04,-0.04)(-0.085,-0.005)
\closepath
}
\psline[linecolor=black,linewidth=0.2pt](-0.085,0.01)(-0.04,0.03)(0,0.023)(0.04,0.03)(0.08,0.004)(0.08,0.005)
\psbezier[linecolor=black,linewidth=0.2pt](0.08,-0.005)(0.04,-0.04)(-0.04,-0.04)(-0.085,-0.005)
\psbezier[linecolor=black,linewidth=0.2pt](0.1,0.002)(0.05,-0.003)(-0.05,-0.003)(-0.1,0.002)
\psline[linecolor=black,linewidth=0.1pt](0.11,0.012)(0.11,-0.012)
\psline[linecolor=black,linewidth=0.1pt](-0.11,0.012)(-0.11,-0.012)
}}

% Haare vor Kopf
\pscustom[fillstyle=solid,fillcolor=yellow!50!brown!50,linestyle=none]{%
\psbezier(0,15.7)(0.5,15.7)(0.45,15.0)(0.6,14.6)
\psline(0.6,14.6)(0.7,14.6)(0.7,15.4)
\psbezier(0.7,15.6)(0.4,15.9)(0,15.9)
\psline(0,15.9)(0,15.7)
}
{\psset{linecolor=brown!60,linewidth=0.5pt}
\psbezier(0,15.7)(0.5,15.7)(0.45,15.0)(0.6,14.6)
}
\pscustom[fillstyle=solid,fillcolor=yellow!50!brown!50,linestyle=none]{%
\psbezier(0,15.9)(-0.5,15.9)(-0.7,15.4)(-0.8,15.1)
\psline(-0.8,15.1)(-0.8,14.4)(-0.55,14.4)
\psbezier(-0.5,15)(0,15)(0.2,15.9)
\closepath
}
{\psset{linecolor=brown!60,linewidth=0.5pt}
\psbezier(-0.55,14.4)(-0.5,15)(0,15)(0.2,15.9)
}

{\psset{linecolor=brown!50,linewidth=0.4pt}
\psbezier(0.05,15)(0.02,14.85)(0.03,14.85)(0.08,14.6)

}
}
}

% Hose
\pscustom[fillstyle=solid,fillcolor=cyan!10,linecolor=blue!50,linewidth=1pt]{%
\psbezier(-1.2,8.8)(-1.22,8.7)(-1.23,8.7)(-1.24,8.6)
\psbezier(-0.8,8.4)(-0.2,8)(-0.03,7.57)
\psline(-0.03,7.57)(0.03,7.57)
\psbezier(0.2,8)(0.8,8.4)(1.24,8.6)
\psbezier(1.23,8.7)(1.22,8.7)(1.2,8.8)
\psbezier(0,8.7)(0,8.7)(-1.2,8.8)
\closepath
}

% BH
\pscustom[fillstyle=solid,fillcolor=cyan!10,linecolor=blue!50,linewidth=1pt,opacity=0.9]{%
\psline(-1.05,13.53)(-1,12.2)
\psbezier(-0.8,11.8)(-0.5,11.6)(-0.09,11.6)
\psbezier(-0.09,11.4)(-0.4,11.24)(-0.7,11.24)
\psbezier(-1.0,11.24)(-1.28,11.44)(-1.05,12.2)
\psline(-1.05,12.2)(-1.1,13.52)
\closepath
}
\pscustom[fillstyle=solid,fillcolor=cyan!10,linecolor=blue!50,linewidth=1pt,opacity=0.9]{%
\psline(1.05,13.53)(1,12.2)
\psbezier(0.8,11.8)(0.5,11.6)(0.09,11.6)
\psbezier(0.09,11.4)(0.4,11.24)(0.7,11.24)
\psbezier(1.0,11.24)(1.28,11.44)(1.05,12.2)
\psline(1.05,12.2)(1.1,13.52)
\closepath
}
\psline[linecolor=blue!50,linewidth=1.2pt](-0.09,11.58)(0.09,11.58)
\psline[linecolor=blue!50,linewidth=1.2pt](-0.096,11.52)(0.096,11.52)

%\psgrid[subgriddiv=5,gridlabels=10pt,gridwidth=0.5pt,gridcolor=green!50,subgridwidth=0.2pt,subgridcolor=green!30]
\end{pspicture}

\end{document}



mercredi 10 juillet 2013

L'homo sapiens, à la plage, dessiné avec PSTricks

Esthétiquement, ce dessin, réalisé avec PSTricks, ne respecte pas tout à fait les "divines proportions" illustrées dans le dessin de "L'homme de Vitruve" ou "Vitruvius" par Léonard de Vinci en 1492, mais c'est un premier essai(estival) de Thomas Söll...
Ensuite, quelques variations utilisant le package pst-transform :

http://melusine.eu.org/syracuse/mluque/pst-transform/





Les codes :

\documentclass{article}
\usepackage{pstricks}
\begin{document}
\definecolor{Weiss}{rgb}{1,0.98,0.98}%     255 250 250
\definecolor{Haut}{rgb}{1,0.894,0.769}% 255 228 196
\definecolor{Auge}{rgb}{0.54,0.27,0.074}% 139 69 19
\begin{pspicture}(-1.5,0)(1.5,8)
\pscustom[fillstyle=solid,fillcolor=Haut,linewidth=1.0pt]{%
% linker Unterarm
\psbezier(-1.15,4.2)(-1.2,4.9)(-1.11,5.1)(-1.05,5.2)
% linke Schulter
\psbezier(-0.95,6.8)(-0.18,6)(-0.18,6.5)
% Hals und Kopf
\psbezier(-0.18,6.8)(-0.32,6.6)(-0.32,7.1)
\psbezier(-0.32,7.34)(-0.2,7.45)(0,7.45)
\psbezier(0.2,7.45)(0.32,7.34)(0.32,7.1)
\psbezier(0.32,6.6)(0.18,6.8)(0.18,6.5)
% rechte Schulter
\psbezier(0.18,6)(0.95,6.8)(1.05,5.2)
% rechter Unterarm
\psbezier(1.11,5.1)(1.2,4.9)(1.15,4.2)
\psbezier(1.14,4.1)(1.16,3.9)(1.15,3.5)
\psbezier(1.15,3.4)(1.16,3.4)(0.95,3.25)
\psbezier(0.9,3.2)(0.88,3.23)(0.85,3.25)
\psbezier(0.86,3.27)(0.92,3.3)(1,3.4)
\psbezier(1.05,3.55)(1.0,3.55)(0.93,3.6)
\psbezier(0.93,3.5)(0.9,3.45)(0.82,3.4)
\psbezier(0.76,3.4)(0.85,3.4)(0.85,3.6)
\psbezier(0.83,3.7)(0.9,3.78)(0.94,3.85)
\psline(0.94,3.85)(0.92,4.05)
\psbezier(0.87,4.4)(0.79,4.6)(0.81,5.1)
\psbezier(0.7,5.4)(0.62,5.4)(0.6,5.7)
\psbezier(0.5,4.9)(0.5,4.8)(0.55,4)
\psbezier(0.6,3.6)(0.58,3.3)(0.57,2.7)
\psbezier(0.57,2.6)(0.55,2.5)(0.51,2.2)
\psbezier(0.45,2.0)(0.6,1.8)(0.6,1.2)
\psbezier(0.6,0.83)(0.53,0.82)(0.53,0.4)
\psbezier(0.75,0.2)(0.75,0.2)(0.75,0.05)
\psbezier(0.65,0)(0.6,0)(0.55,0)
\psbezier(0.54,0)(0.45,0.1)(0.4,0.2)
\psbezier(0.38,0.25)(0.36,0.33)(0.34,0.4)
\psline(0.34,0.4)(0.3,0.65)
\psbezier(0.32,1)(0.16,1.2)(0.18,1.8)
\psbezier(0.07,2.4)(0.05,3.6)(0,3.6)
%linkes Bein
\psbezier(-0.05,3.6)(-0.07,2.4)(-0.18,1.8)
\psbezier(-0.16,1.2)(-0.32,1)(-0.3,0.65)
\psline(-0.3,0.65)(-0.34,0.4)
\psbezier(-0.36,0.33)(-0.38,0.25)(-0.4,0.2)
\psbezier(-0.45,0.1)(-0.54,0)(-0.55,0)
\psbezier(-0.6,0)(-0.65,0)(-0.75,0.05)
\psbezier(-0.75,0.2)(-0.75,0.2)(-0.53,0.4)
\psbezier(-0.53,0.82)(-0.6,0.83)(-0.6,1.2)
\psbezier(-0.6,1.8)(-0.45,2.0)(-0.51,2.2)
\psbezier(-0.55,2.5)(-0.57,2.6)(-0.57,2.7)
\psbezier(-0.58,3.3)(-0.6,3.6)(-0.55,4)
\psbezier(-0.5,4.8)(-0.5,4.9)(-0.6,5.7)
\psbezier(-0.62,5.4)(-0.7,5.4)(-0.81,5.1)
\psbezier(-0.79,4.6)(-0.87,4.4)(-0.92,4.05)
\psline(-0.92,4.05)(-0.94,3.85)
\psbezier(-0.9,3.78)(-0.83,3.7)(-0.85,3.6)
\psbezier(-0.85,3.4)(-0.76,3.4)(-0.82,3.4)
\psbezier(-0.9,3.45)(-0.93,3.5)(-0.93,3.6)
\psbezier(-1.0,3.55)(-1.05,3.55)(-1,3.4)
\psbezier(-0.92,3.3)(-0.86,3.27)(-0.85,3.25)
\psbezier(-0.88,3.23)(-0.9,3.2)(-0.95,3.25)
\psbezier(-1.16,3.4)(-1.15,3.4)(-1.15,3.5)
\psbezier(-1.16,3.9)(-1.14,4.1)(-1.15,4.2)
%
\closepath
}
\psbezier[linewidth=0.6pt](-0.45,5.43)(-0.3,5.41)(-0.3,5.41)(-0.2,5.43)
\psbezier[linewidth=0.6pt](0.45,5.43)(0.3,5.41)(0.3,5.41)(0.2,5.43)
\psellipse[fillstyle=solid,fillcolor=black,linestyle=none](0,4.2)(0.02,0.035)
\def\AugeR{%
\begin{psclip}{%
\pscustom[fillstyle=solid,fillcolor=Weiss,linecolor=black,linewidth=0.2pt]{%
\psbezier(0.05,0)(0.04,0.004)(0.02,0.02)(0,0.02)
\psbezier(-0.02,0.02)(-0.04,0.01)(-0.05,-0.005)
\psbezier(-0.047,0)(-0.02,-0.018)(0,-0.018)
\psbezier(0.02,-0.018)(0.04,-0.006)(0.05,0)
\closepath
}
}
\pscircle[linestyle=none,fillstyle=solid,fillcolor=Auge](0,0.002){0.024}
\pscircle[linewidth=0.2pt,fillstyle=solid,fillcolor=black](0.001,0.001){0.012}
\end{psclip}
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](0.009,0.003)(0.01,0.014)(-0.002,0.014)(-0.002,0.003)
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](-0.004,0.003)(-0.004,0.014)(-0.012,0.014)(-0.012,0.003)
\psbezier[linewidth=0.1pt](0.05,0.01)(0.044,0.03)(-0.02,0.05)(-0.05,0.005)
\psbezier[linewidth=0.6pt](0.05,0.035)(0.044,0.05)(-0.02,0.055)(-0.05,0.04)
}
\def\AugeL{%
\begin{psclip}{%
\pscustom[fillstyle=solid,fillcolor=Weiss,linecolor=black,linewidth=0.2pt]{%
\psbezier(-0.05,0)(-0.04,0.004)(-0.02,0.02)(0,0.02)
\psbezier(0.02,0.02)(0.04,0.01)(0.05,-0.005)
\psbezier(0.047,0)(0.02,-0.018)(0,-0.018)
\psbezier(-0.02,-0.018)(-0.04,-0.006)(-0.05,0)
\closepath
}
}
\pscircle[linestyle=none,fillstyle=solid,fillcolor=Auge](0,0.002){0.024}
\pscircle[linewidth=0.2pt,fillstyle=solid,fillcolor=black](0.001,0.001){0.012}
\end{psclip}
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](-0.009,0.003)(-0.01,0.014)(0.002,0.014)(0.002,0.003)
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](0.004,0.003)(0.004,0.014)(0.012,0.014)(0.012,0.003)
\psbezier[linewidth=0.1pt](-0.05,0.01)(-0.044,0.03)(0.02,0.05)(0.05,0.005)
\psbezier[linewidth=0.6pt](-0.05,0.035)(-0.044,0.05)(0.02,0.055)(0.05,0.04)
}
\rput(-0.14,7.04){\psscalebox{1.55}{\AugeL}}
\rput(0.14,7.04){\psscalebox{1.55}{\AugeR}}
\rput(0,6.81){%
\psbezier[linewidth=0.6pt](-0.04,0)(0,-0.03)(0.02,-0.025)(0.04,0)
\psbezier[linewidth=0.6pt](0.035,0.28)(0.02,0.18)(0.02,0.1)(0.055,0.045)
}
\rput(0,6.72){%
\pscustom[fillstyle=solid,fillcolor=red!40,linestyle=none]{%
\psline(-0.085,0.01)(-0.04,0.03)(0,0.023)(0.04,0.03)(0.08,0.004)(0.08,0.005)(0.08,-0.005)
\psbezier(0.04,-0.04)(-0.04,-0.04)(-0.085,-0.005)
\closepath
}
\psline[linewidth=0.2pt](-0.085,0.01)(-0.04,0.03)(0,0.023)(0.04,0.03)(0.08,0.004)(0.08,0.005)
\psbezier[linewidth=0.2pt](0.08,-0.005)(0.04,-0.04)(-0.04,-0.04)(-0.085,-0.005)
\psbezier[linewidth=0.2pt](0.12,0.02)(0.05,-0.015)(-0.05,-0.017)(-0.12,0.02)
\psline[linewidth=0.2pt](0.128,0.012)(0.112,0.028)
\psline[linewidth=0.2pt](-0.128,0.012)(-0.112,0.028)
}
\psbezier[linewidth=0.4pt](-0.17,6.65)(-0.1,6.6)(-0.1,6.58)(-0.05,6.57)
\psbezier[linewidth=0.4pt](0.17,6.65)(0.1,6.6)(0.1,6.58)(0.05,6.57)
\rput(0,6.66){%
\psbezier[linewidth=0.6pt](-0.06,0)(-0.01,0.005)(0.02,0.005)(0.06,-0.01)}
\pscustom[fillstyle=solid,fillcolor=Haut,linewidth=0.5pt]{%
\psbezier(-0.32,7)(-0.32,7.1)(-0.37,7.1)(-0.36,7)
\psbezier(-0.35,6.95)(-0.36,6.9)(-0.345,6.85)
\psbezier(-0.325,6.82)(-0.316,6.85)(-0.32,7)
\closepath
}
\pscustom[fillstyle=solid,fillcolor=Haut,linewidth=0.5pt]{%
\psbezier(0.32,7)(0.32,7.1)(0.37,7.1)(0.36,7)
\psbezier(0.35,6.95)(0.36,6.9)(0.345,6.85)
\psbezier(0.325,6.82)(0.316,6.85)(0.32,7)
\closepath
}
\pspolygon[fillstyle=solid,fillcolor=blue!40](-0.56,4)(-0.59,3.45)(-0.02,3.43)(0,3.52)(0.02,3.43)(0.59,3.45)(0.56,4)
\end{pspicture}

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass{article}
\usepackage{pst-transform}
\definecolor{Weiss}{rgb}{1,0.98,0.98}
\definecolor{Haut}{rgb}{1,0.894,0.769}
\definecolor{Auge}{rgb}{0.54,0.27,0.074}
\def\sapiens{\pscustom[fillstyle=solid,fillcolor=Haut,linewidth=1.0pt]{%
% linker Unterarm
\psbezier(-1.15,4.2)(-1.2,4.9)(-1.11,5.1)(-1.05,5.2)
% linke Schulter
\psbezier(-0.95,6.8)(-0.18,6)(-0.18,6.5)
% Hals und Kopf
\psbezier(-0.18,6.8)(-0.32,6.6)(-0.32,7.1)
\psbezier(-0.32,7.34)(-0.2,7.45)(0,7.45)
\psbezier(0.2,7.45)(0.32,7.34)(0.32,7.1)
\psbezier(0.32,6.6)(0.18,6.8)(0.18,6.5)
% rechte Schulter
\psbezier(0.18,6)(0.95,6.8)(1.05,5.2)
% rechter Unterarm
\psbezier(1.11,5.1)(1.2,4.9)(1.15,4.2)
\psbezier(1.14,4.1)(1.16,3.9)(1.15,3.5)
\psbezier(1.15,3.4)(1.16,3.4)(0.95,3.25)
\psbezier(0.9,3.2)(0.88,3.23)(0.85,3.25)
\psbezier(0.86,3.27)(0.92,3.3)(1,3.4)
\psbezier(1.05,3.55)(1.0,3.55)(0.93,3.6)
\psbezier(0.93,3.5)(0.9,3.45)(0.82,3.4)
\psbezier(0.76,3.4)(0.85,3.4)(0.85,3.6)
\psbezier(0.83,3.7)(0.9,3.78)(0.94,3.85)
\psline(0.94,3.85)(0.92,4.05)
\psbezier(0.87,4.4)(0.79,4.6)(0.81,5.1)
\psbezier(0.7,5.4)(0.62,5.4)(0.6,5.7)
\psbezier(0.5,4.9)(0.5,4.8)(0.55,4)
\psbezier(0.6,3.6)(0.58,3.3)(0.57,2.7)
\psbezier(0.57,2.6)(0.55,2.5)(0.51,2.2)
\psbezier(0.45,2.0)(0.6,1.8)(0.6,1.2)
\psbezier(0.6,0.83)(0.53,0.82)(0.53,0.4)
\psbezier(0.75,0.2)(0.75,0.2)(0.75,0.05)
\psbezier(0.65,0)(0.6,0)(0.55,0)
\psbezier(0.54,0)(0.45,0.1)(0.4,0.2)
\psbezier(0.38,0.25)(0.36,0.33)(0.34,0.4)
\psline(0.34,0.4)(0.3,0.65)
\psbezier(0.32,1)(0.16,1.2)(0.18,1.8)
\psbezier(0.07,2.4)(0.05,3.6)(0,3.6)
%linkes Bein
\psbezier(-0.05,3.6)(-0.07,2.4)(-0.18,1.8)
\psbezier(-0.16,1.2)(-0.32,1)(-0.3,0.65)
\psline(-0.3,0.65)(-0.34,0.4)
\psbezier(-0.36,0.33)(-0.38,0.25)(-0.4,0.2)
\psbezier(-0.45,0.1)(-0.54,0)(-0.55,0)
\psbezier(-0.6,0)(-0.65,0)(-0.75,0.05)
\psbezier(-0.75,0.2)(-0.75,0.2)(-0.53,0.4)
\psbezier(-0.53,0.82)(-0.6,0.83)(-0.6,1.2)
\psbezier(-0.6,1.8)(-0.45,2.0)(-0.51,2.2)
\psbezier(-0.55,2.5)(-0.57,2.6)(-0.57,2.7)
\psbezier(-0.58,3.3)(-0.6,3.6)(-0.55,4)
\psbezier(-0.5,4.8)(-0.5,4.9)(-0.6,5.7)
\psbezier(-0.62,5.4)(-0.7,5.4)(-0.81,5.1)
\psbezier(-0.79,4.6)(-0.87,4.4)(-0.92,4.05)
\psline(-0.92,4.05)(-0.94,3.85)
\psbezier(-0.9,3.78)(-0.83,3.7)(-0.85,3.6)
\psbezier(-0.85,3.4)(-0.76,3.4)(-0.82,3.4)
\psbezier(-0.9,3.45)(-0.93,3.5)(-0.93,3.6)
\psbezier(-1.0,3.55)(-1.05,3.55)(-1,3.4)
\psbezier(-0.92,3.3)(-0.86,3.27)(-0.85,3.25)
\psbezier(-0.88,3.23)(-0.9,3.2)(-0.95,3.25)
\psbezier(-1.16,3.4)(-1.15,3.4)(-1.15,3.5)
\psbezier(-1.16,3.9)(-1.14,4.1)(-1.15,4.2)
%
\closepath
}
\psbezier[linewidth=0.6pt](-0.45,5.43)(-0.3,5.41)(-0.3,5.41)(-0.2,5.43)
\psbezier[linewidth=0.6pt](0.45,5.43)(0.3,5.41)(0.3,5.41)(0.2,5.43)
\psellipse[fillstyle=solid,fillcolor=black,linestyle=none](0,4.2)(0.02,0.035)
\def\AugeR{%
\begin{psclip}{%
\pscustom[fillstyle=solid,fillcolor=Weiss,linecolor=black,linewidth=0.2pt]{%
\psbezier(0.05,0)(0.04,0.004)(0.02,0.02)(0,0.02)
\psbezier(-0.02,0.02)(-0.04,0.01)(-0.05,-0.005)
\psbezier(-0.047,0)(-0.02,-0.018)(0,-0.018)
\psbezier(0.02,-0.018)(0.04,-0.006)(0.05,0)
\closepath
}
}
\pscircle[linestyle=none,fillstyle=solid,fillcolor=Auge](0,0.002){0.024}
\pscircle[linewidth=0.2pt,fillstyle=solid,fillcolor=black](0.001,0.001){0.012}
\end{psclip}
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](0.009,0.003)(0.01,0.014)(-0.002,0.014)(-0.002,0.003)
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](-0.004,0.003)(-0.004,0.014)(-0.012,0.014)(-0.012,0.003)
\psbezier[linewidth=0.1pt](0.05,0.01)(0.044,0.03)(-0.02,0.05)(-0.05,0.005)
\psbezier[linewidth=0.6pt](0.05,0.035)(0.044,0.05)(-0.02,0.055)(-0.05,0.04)
}
\def\AugeL{%
\begin{psclip}{%
\pscustom[fillstyle=solid,fillcolor=Weiss,linecolor=black,linewidth=0.2pt]{%
\psbezier(-0.05,0)(-0.04,0.004)(-0.02,0.02)(0,0.02)
\psbezier(0.02,0.02)(0.04,0.01)(0.05,-0.005)
\psbezier(0.047,0)(0.02,-0.018)(0,-0.018)
\psbezier(-0.02,-0.018)(-0.04,-0.006)(-0.05,0)
\closepath
}
}
\pscircle[linestyle=none,fillstyle=solid,fillcolor=Auge](0,0.002){0.024}
\pscircle[linewidth=0.2pt,fillstyle=solid,fillcolor=black](0.001,0.001){0.012}
\end{psclip}
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](-0.009,0.003)(-0.01,0.014)(0.002,0.014)(0.002,0.003)
\pspolygon[linewidth=0.06pt,fillstyle=solid,fillcolor=white](0.004,0.003)(0.004,0.014)(0.012,0.014)(0.012,0.003)
\psbezier[linewidth=0.1pt](-0.05,0.01)(-0.044,0.03)(0.02,0.05)(0.05,0.005)
\psbezier[linewidth=0.6pt](-0.05,0.035)(-0.044,0.05)(0.02,0.055)(0.05,0.04)
}
\rput(-0.14,7.04){\psscalebox{1.55}{\AugeL}}
\rput(0.14,7.04){\psscalebox{1.55}{\AugeR}}
\rput(0,6.81){%
\psbezier[linewidth=0.6pt](-0.04,0)(0,-0.03)(0.02,-0.025)(0.04,0)
\psbezier[linewidth=0.6pt](0.035,0.28)(0.02,0.18)(0.02,0.1)(0.055,0.045)
}
\rput(0,6.72){%
\pscustom[fillstyle=solid,fillcolor=red!40,linestyle=none]{%
\psline(-0.085,0.01)(-0.04,0.03)(0,0.023)(0.04,0.03)(0.08,0.004)(0.08,0.005)(0.08,-0.005)
\psbezier(0.04,-0.04)(-0.04,-0.04)(-0.085,-0.005)
\closepath
}
\psline[linewidth=0.2pt](-0.085,0.01)(-0.04,0.03)(0,0.023)(0.04,0.03)(0.08,0.004)(0.08,0.005)
\psbezier[linewidth=0.2pt](0.08,-0.005)(0.04,-0.04)(-0.04,-0.04)(-0.085,-0.005)
\psbezier[linewidth=0.2pt](0.12,0.02)(0.05,-0.015)(-0.05,-0.017)(-0.12,0.02)
\psline[linewidth=0.2pt](0.128,0.012)(0.112,0.028)
\psline[linewidth=0.2pt](-0.128,0.012)(-0.112,0.028)
}
\psbezier[linewidth=0.4pt](-0.17,6.65)(-0.1,6.6)(-0.1,6.58)(-0.05,6.57)
\psbezier[linewidth=0.4pt](0.17,6.65)(0.1,6.6)(0.1,6.58)(0.05,6.57)
\rput(0,6.66){%
\psbezier[linewidth=0.6pt](-0.06,0)(-0.01,0.005)(0.02,0.005)(0.06,-0.01)}
\pscustom[fillstyle=solid,fillcolor=Haut,linewidth=0.5pt]{%
\psbezier(-0.32,7)(-0.32,7.1)(-0.37,7.1)(-0.36,7)
\psbezier(-0.35,6.95)(-0.36,6.9)(-0.345,6.85)
\psbezier(-0.325,6.82)(-0.316,6.85)(-0.32,7)
\closepath
}
\pscustom[fillstyle=solid,fillcolor=Haut,linewidth=0.5pt]{%
\psbezier(0.32,7)(0.32,7.1)(0.37,7.1)(0.36,7)
\psbezier(0.35,6.95)(0.36,6.9)(0.345,6.85)
\psbezier(0.325,6.82)(0.316,6.85)(0.32,7)
\closepath
}
\pspolygon[fillstyle=solid,fillcolor=blue!40](-0.56,4)(-0.59,3.45)(-0.02,3.43)(0,3.52)(0.02,3.43)(0.59,3.45)(0.56,4)
}


\pagestyle{empty}

\begin{document}

\begin{center}
\psframebox[fillstyle=solid,fillcolor=cyan!20,linestyle=none]{
\begin{pspicture}(-2,-1)(2,9)
\psset{curvature={1 0.5 3}}\psgrid(-2,-1)(2,9)\sapiens
\end{pspicture}}
\pscisaillement[cisX=20,cisY=20]{\psframebox[fillstyle=solid,fillcolor=cyan!20,linestyle=none]{
\begin{pspicture}(-2,-1)(2,9)
\psgrid(-2,-1)(2,9)%
\psset{curvature={1 0.5 3}}\sapiens
\pnode(-1,0){A}\pnode(1,0){B}
\SymPlan(A)(B){\sapiens\psgrid(-2,-1)(2,9)}
\end{pspicture}}}
\end{center}

\begin{center}
\psframebox[fillstyle=solid,fillcolor=cyan!20,linestyle=none]{
\begin{pspicture}(-3,-1)(3,9)
\psset{curvature={1 0.5 3}}
\psscalebox{2.5 0.5}{\sapiens}
\end{pspicture}}
\psframebox[fillstyle=solid,fillcolor=cyan!20,linestyle=none]{
\begin{pspicture}(-1,-1)(1,9)
\psset{curvature={1 0.5 3}}
\psscalebox{0.25 1}{\sapiens}
\end{pspicture}}

\psframebox[fillstyle=solid,fillcolor=cyan!20,linestyle=none]{
\begin{pspicture}[showgrid](-2,-1)(3,9)
\psset{curvature={1 0.5 3}}
\sapiens
\psHomothetie(3,0){0.5}{\sapiens}
\psHomothetie(3,0){0.5}{\psHomothetie(3,0){0.5}{\sapiens}}
\end{pspicture}}
\end{center}
\end{document}



samedi 6 juillet 2013

Un schéma pour illustrer l'énergie de liaison

Un schéma pour illustrer l'énergie de liaison, dessiné avec PSTricks par Thomas Söll.

Le code :

\documentclass[12pt,fleqn,dvipsnames]{article}
\usepackage{amsmath}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{pst-slpe,pst-grad,pst-node,multido}

\begin{document}

\section*{Illustration de l'énergie de liaison}

\def\Kernradius{7.5pt}
\def\KernabstandHe{7.5pt}
\def\ColorProton{BrickRed}
\def\ColorNeutron{gray!60}
\newpsstyle{proton}{linecolor=BrickRed!80,slopebegin=red!30,sloperadius=0.25,linewidth=0.1pt,slopecenter=0.65 0.6,linestyle=solid}
\newpsstyle{neutron}{linecolor=gray!40,slopebegin=white,sloperadius=0.3,linewidth=0.1pt,slopecenter=0.65 0.6,linestyle=solid}
\newpsstyle{atom1}{slopebegin=cyan!90,sloperadius=5.5,slopecenter=0.5 0.5,linestyle=none}
\newpsstyle{atom}{slopebegin=NavyBlue!50,sloperadius=5.5,slopecenter=0.5 0.5,linestyle=none}

\def\Proton{\psBall[style=proton](0,0){\ColorProton}{\Kernradius}}
\def\Neutron{\psBall[style=neutron](0,0){\ColorNeutron}{\Kernradius}}

\def\AtomKernHe{%
\multido{\iAngle=40+180}{2}{%
\rput(\KernabstandHe;\iAngle){\Proton}%
}%
\multido{\iAngle=130+180}{2}{%
\rput(\KernabstandHe;\iAngle){\Neutron}%
}%
}%

\begin{center}
\begin{pspicture}[showgrid=false](-4.25,-3.6)(4,5)
\begin{psclip}{\psframe[linestyle=none](-4.25,-3.4)(4,5)}
\pscustom[fillstyle=solid,fillcolor=orange!60!gray!60,linearc=0.6]{%
\psline(-4.75,4)(0,4)(1,0)(2,0)(3,4)(4.75,4)(4.75,-3.5)(-4.75,-3.5)
\closepath
}
\end{psclip}
\rput(-3.6,4.28){\Proton}
\rput(-3.0,4.28){\Proton}
\rput(-2.4,4.28){\Neutron}
\rput(-1.8,4.28){\Neutron}
\rput(1.5,0.5){\AtomKernHe}

\pcline[nodesepA=0,nodesepB=0,linestyle=dashed,dash=5pt 3pt,linewidth=0.6pt](-1.5,4.28)(1,4.28)
\pcline[nodesepA=0,nodesepB=0,linestyle=dashed,dash=5pt 3pt,linewidth=0.6pt](0,0.5)(1,0.5)
\pcline[nodesepA=0,nodesepB=0,linestyle=dashed,dash=5pt 3pt,linewidth=0.6pt](-1.5,-3.4)(1,-3.4)
{\psset{arrowinset=0.05,arrowscale=1.6,arrowlength=1.8}%
\pcline[linewidth=0.6pt]{<->}(-0.9,-3.4)(-0.9,4.28)
\ncput*[fillcolor=orange!60!gray!60]{$E_{\text{pot,1}}$}
\pcline[linewidth=0.6pt]{<->}(0.4,-3.4)(0.4,0.5)
\ncput*[fillcolor=orange!60!gray!60]{$E_{\text{pot,2}}$}
\pcline[linewidth=0.6pt]{<->}(0.4,0.5)(0.4,4.28)
\ncput{\psframebox[fillstyle=gradient,gradend=orange!60!gray!60,gradbegin=white,gradmidpoint=0,gradangle=100,linestyle=none]{%
$\Delta E_{\text{pot}}$}}

\uput{0.6}[180](-1,-3.45){$E_{\text{pot}} = 0$}
}
\end{pspicture}
\end{center}

\end{document}

Voyage dans le cœur du réacteur d'une centrale nucléaire avec Thomas Söll

Le cœur du réacteur d'une centrale nucléaire illustré avec PSTricks par Thomas Söll.
Le cœur du réacteur chargé dans une vue de dessus :
L'ensemble des 72 barres de combustible constituant un élément de combustible. Qui sont à leur tour au nombre de 840 dans le cœur du réacteur, pour un total d'environ 150 tonnes de dioxyde d'uranium.

Le crayon combustible est entouré par un manchon de Zircaloy (alliage de zirconium) avec une épaisseur de paroi de 0,65 mm. Les pastilles de dioxyde d'uranium ont été comprimées et frittées. On récupère les gaz de fission qui sont constitués de gaz nobles et des produits de fission volatils.

Les fichiers (Brennelemente-2.pdf Brennelemente-2.tex) et les fichiers originaux de Thomas (Brennelemente.pdf Brennelemente.tex) sont dans le dossier :

Le code :

\documentclass[12pt,dvipsnames]{article}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[sfmath,frenchstyle]{kpfonts}
\usepackage[a4paper,margin=2cm]{geometry}

\parindent0pt
\parskip4pt

\usepackage[rgb]{pstricks}
\usepackage{pst-grad,pst-node,multido}
\usepackage{pst-coil}

\newcommand{\Zylinder}[9]{%  #1 L\"{a}nge, #2 Radius, #3 gradbegin, #4 gradend, #5 gradmidpoint
\pscustom[dimen=#9,fillstyle=gradient,gradbegin=#3,gradend=#4,gradmidpoint=#5,gradangle=90,linecolor=#6,linewidth=#7,linestyle=#8]{%
\psellipticarc(0,0)(!#2 #2 0.3 mul){180}{360}
\psellipticarcn(0,#1)(!#2 #2 0.3 mul){0}{-180}
\closepath
}
\psellipse[fillstyle=solid,fillcolor=#6,linestyle=none](0,#1)(!#2 #2 0.3 mul)
}

\definecolor{TextA}{rgb}{0.2,0.402,0.333}% Pfeile Medium Aquamarine

\begin{document}

\section*{Reaktorkern}

Blick von oben in den beladenen Reaktorkern

\begin{pspicture}[showgrid=false](-6,-6)(6,6)
\pscircle[fillstyle=gradient,gradbegin=black!90!brown!90,gradend=black!40!brown!10,gradmidpoint=0.65,gradangle=45,%
linecolor=black!40,linewidth=0.5pt,linestyle=solid](0,0){5.9}
\pscircle[fillstyle=gradient,gradbegin=black!90!cyan!90,gradend=black!40!cyan!10,gradmidpoint=0.67,gradangle=45,%
linecolor=black!40,linewidth=0.5pt,linestyle=solid](0,0){5.3}
\pscircle[fillstyle=solid,fillcolor=black,linestyle=solid](0,0){4.7}

\def\Brennelement{%
\psframe[fillstyle=solid,fillcolor=cyan!90!black!40,linewidth=0.3pt](-0.25,-0.25)(0.25,0.25)
\pspolygon[fillstyle=solid,fillcolor=black,linestyle=none](-0.19,-0.13)(-0.19,0.13)(-0.13,0.19)(0.13,0.19)(0.19,0.13)(0.19,-0.13)(0.13,-0.19)(-0.13,-0.19)
\psframe[fillstyle=solid,fillcolor=black,linestyle=none](-0.24,-0.24)(-0.19,-0.19)
\psframe[fillstyle=solid,fillcolor=black,linestyle=none](-0.24,0.24)(-0.19,0.19)
\psframe[fillstyle=solid,fillcolor=black,linestyle=none](0.24,-0.24)(0.19,-0.19)
\psframe[fillstyle=solid,fillcolor=black,linestyle=none](0.24,0.24)(0.19,0.19)
\multido{\rB=0+30}{6}{%
\rput{\rB}(0,0){\pcline[linecolor=cyan!90!black!40,linewidth=0.5pt](-0.24,0)(0.24,0)}
}
\pscircle[fillstyle=solid,fillcolor=black,linecolor=cyan!90!black!40,linewidth=0.7pt](0,0){0.06}
\pscircle[linecolor=black,linewidth=0.3pt](0,0){0.064}}

\multido{\rD=-3+0.5}{13}{%
\multido{\rC=-2.5+0.5}{11}{%
\rput(\rC,\rD){\Brennelement}
}}

\multido{\rD=-1.5+0.5}{7}{%
\rput(-3.5,\rD){\Brennelement}
}
\multido{\rD=-2.5+0.5}{11}{%
\rput(-3.0,\rD){\Brennelement}
}

\multido{\rD=-1.5+0.5}{7}{%
\rput(3.5,\rD){\Brennelement}
}
\multido{\rD=-2.5+0.5}{11}{%
\rput(3.0,\rD){\Brennelement}
}

\multido{\rD=-1.5+0.5}{7}{%
\rput(\rD,-3.5){\Brennelement}
}
\multido{\rD=-2.5+0.5}{11}{%
\rput(\rD,-3){\Brennelement}
}

\multido{\rD=-1.5+0.5}{7}{%
\rput(\rD,3.5){\Brennelement}
}
\multido{\rD=-2.5+0.5}{11}{%
\rput(\rD,3){\Brennelement}
}

\end{pspicture}

\section*{Brennelement}
\begin{minipage}[t]{10cm}
  Zusammenfassung von 72 Brennst\"{a}ben (KKW Kr\"{u}mmel) zu einem Brennelement. Davon befinden sich wiederum 840 im Reaktorkern mit insgesamt etwa 150 Tonnen Urandioxid
%
\end{minipage}
%
\begin{pspicture}[showgrid=false,shift=-25](-1,0)(3,25.5)
{\psset{xunit=0.065,yunit=0.065}%
\def\BrennstabA{%
\rput{0}(0,-0.8){\Zylinder{0.3}{0.38}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,-0.5){\Zylinder{0.3}{0.25}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,-0.2){\Zylinder{0.2}{0.5}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,0){\Zylinder{390}{0.5}{black!90!blue!80}{cyan!10}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,390){\Zylinder{0.2}{0.5}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,390.2){\Zylinder{0.5}{0.25}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,390.7){\Zylinder{0.6}{0.5}{black!90!blue!80}{black!60!blue!50}{0.3}{black!70!blue!80}{1pt}{none}{middle}}
%
}

\multido{\rB=5.25+1.5}{9}{%
\rput(\rB,5.25){\BrennstabA}}
\multido{\rB=4.5+1.5}{9}{%
\rput(\rB,4.5){\BrennstabA}}
\multido{\rB=3.75+1.5}{9}{%
\rput(\rB,3.75){\BrennstabA}}
\multido{\rB=3+1.5}{9}{%
\rput(\rB,3){\BrennstabA}}
\multido{\rB=2.25+1.5}{9}{%
\rput(\rB,2.25){\BrennstabA}}
\multido{\rB=1.5+1.5}{9}{%
\rput(\rB,1.5){\BrennstabA}}
\multido{\rB=0.75+1.5}{9}{%
\rput(\rB,0.75){\BrennstabA}}
\multido{\rB=0+1.5}{9}{%
\rput(\rB,0){\BrennstabA}}

\def\Halter{%
\pspolygon[fillstyle=gradient,gradbegin=black!90!cyan!90,gradend=black!40!cyan!10,gradmidpoint=0.67,gradangle=90,%
linecolor=black!60,linewidth=0.5pt,linestyle=none]%
(-0.3,0)(12.5,0)(18.1,5.25)(18.1,10.25)(12.5,5)(-0.3,5)}

\multido{\rA=5+62.5}{7}{%
\rput(-0.32,\rA){%
\Halter \psline[linecolor=black!60,linewidth=0.5pt,linestyle=none](12.5,0)(18.1,5.25)}}
}
\end{pspicture}

\section*{Brennstab}

Der Brennstab ist von einer Zirkaloy-H\"{u}lle (Zirkonium-Legierung) mit einer Wandst\"{a}rke von $0,65\,\text{mm}$ umgeben.
Die Urandioxid-Tabletten wurden gepresst, gesintert und geschliffen. Im Spaltgasraum sammeln sich Edelgase und die leicht fl\"{u}chtigen Spaltprodukte.

\begin{pspicture}[showgrid=false](-2,-2)(4,15)
\def\Brennstab{%
\rput{0}(0,-0.8){\Zylinder{0.3}{0.38}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,-0.5){\Zylinder{0.3}{0.25}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,-0.2){\Zylinder{0.2}{0.5}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,0){\Zylinder{13}{0.5}{black!90!blue!80}{cyan!10}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,0){\Zylinder{1}{0.35}{black!90!orange!80}{orange!10}{0.3}{black!90!orange!80}{1pt}{solid}{middle}}
\rput{0}(0,1){\Zylinder{0.4}{0.35}{black!70!green!80}{green!10}{0.3}{black!70!green!80}{1pt}{solid}{middle}}
\multido{\rB=1.4+0.6}{14}{%
\rput(0,\rB){%
\Zylinder{0.6}{0.35}{black!50!red!90}{red!10}{0.3}{black!70!red!80}{1pt}{solid}{middle}
}
}
\rput{0}(0,9.8){\Zylinder{0.4}{0.35}{black!70!green!80}{green!10}{0.3}{black!70!green!80}{1pt}{solid}{middle}}
\pscoil[coilaspect=30,coilarm=0.02cm,coilwidth=6mm,coilheight=0.35,linewidth=1pt,linecolor=orange](0,10.2)(0,13)
\rput{0}(0,13){\Zylinder{0.2}{0.5}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,13.2){\Zylinder{0.5}{0.25}{black!90!blue!80}{black!60!blue!50}{0.3}{black!90!blue!80}{1pt}{none}{middle}}
\rput{0}(0,13.7){\Zylinder{0.6}{0.5}{black!90!blue!80}{black!60!blue!50}{0.3}{black!70!blue!80}{1pt}{none}{middle}}
%
\def\break{%
\pspolygon[fillstyle=solid,fillcolor=white,linestyle=none]%
(-0.5,0.2)(-0.3,0.5)(-0.2,0.35)(0,0.57)(0.2,0.4)(0.4,0.55)(0.5,0.6)(0.5,0.2)(0.4,0.15)(0.2,0)(0,0.17)(-0.2,-0.05)(-0.3,0.1)(-0.5,-0.2)
}
\rput(0,11.5){\break}
\rput(0,4.1){\break}
%
}
\rput(0,0){\Brennstab}
\pcline[arrowlength=1.8,arrowscale=1.6,arrowinset=0.06,tbarsize=8pt]{|<->|}(-1.5,-0.8)(-1.5,14.3)
\ncput*[nrot=:U]{\small $4,17\,\text{m}$}

\pcline[arrowlength=1.8,arrowscale=1.6,arrowinset=0.06,tbarsize=6pt]{|<->|}(-0.5,-1.2)(0.5,-1.2)
\nbput[labelsep=7pt]{\small ca. $11\,\text{mm}$}

\rput[l](1.5,12.4){\small\shortstack[l]{Enceinte\\ des gaz de fission}}
\pcline(0.4,12.38)(1.4,12.38)
\rput[l](1.5,11){\small \textcolor{orange!90!black!90}{Ressort}}
\pcline(0.35,11)(1.4,11)
\rput[l](1.5,10){\small \textcolor{green!60!black!90}{\shortstack[l]{Pastille isolante\strut\\[-5pt] de $\text{Al}_{2}\text{O}_{3}$\strut}}}
\pcline(0.35,10)(1.4,10)
\rput[l](1.5,8){\small \textcolor{red!90!black!90}{\shortstack[l]{Pastille d'oxyde\strut\\[-5pt] d'uranium $\text{U}\text{O}_{2}$\strut}}}
\pcline(0.35,8.1)(1.4,8.1)
\rput[l](1.5,1.1){\small \textcolor{green!60!black!90}{\shortstack[l]{Pastille isolante\strut\\[-5pt] de $\text{Al}_{2}\text{O}_{3}$\strut}}}
\pcline(0.4,1.1)(1.4,1.1)
\rput[l](1.5,0.3){\small \textcolor{brown!90!black!90}{Manchon support}}
\pcline(0.4,0.3)(1.4,0.3)
\end{pspicture}

\end{document}