mercredi 28 décembre 2016

2016->2017


L'animation a été réalisée avec le package pst-crayon. La dernière version du package est ici :
C'est l'adaptation de l'animation de l'année dernière :
Le listing pour obtenir les images dans un pdf,  qui serviront à la création du gif (à compiler par LaTeX->dvips->ps2pdf) sont dans le dossier  :

mardi 20 décembre 2016

Représentation des coquillages avec PSTricks

 Le package pst-shell a été mis en ligne sur le serveur du CTAN par Herbert Voss qui y a apporté un certain nombre de modifications. Quelques exemples ci-dessous se retrouvent dans la nouvelle documentation, mais pour les autres comme ceux du fichier Nautilius, il faudra, si ces exemples vous intéressent, les adapter vous-même à la nouvelle syntaxe.

 
La modélisation géométrique des coquillages a été réalisée par M. B. Cortie. Dans le document “DIGITAL SEASHELLS” il en donne les équations paramétriques lesquelles sont fonction de 14 paramètres, ceci afin de permettre de modéliser un très grand nombre de coquillages.
La démonstration de ces équations est proposée par Jorge Picado, elle est très complète et joliment illustrée :
Jorge Picado rajoute le paramètre D = ±1 permettant ainsi la représentation des coquillages senestre et dextre. Jorge Picado propose un code pour Mathematica, que je n’ai pas pu tester, cependant les images qui illustrent sa page accompagnées des paramètres d’un grand nombre de coquillages sont très démonstratives.
Sur le site de l’American Mathematical Society, Tony Phillips et Stony Brook traitent aussi de la modélisation de divers coquillages avec le code pour une concrétisation avec Maple.
Le package ‘pst-shells’ permet de représenter les coquillages avec PSTricks, c’est donc une adaptation des équations établies par M. B. Cortie. Les paramètres utilisés sont identiques à ceux des documents de M. B. Cortie et Jorge Picado. On se référera donc à ces 2 auteurs pour en connaître la signification. On n’aura pas avec PSTricks la rapidité d’affichage de Mathematica et Maple, ni la qualité de lissage des surfaces possible avec ces logiciels ou POV-Ray, mais sur certains exemples, grâce aux options de pst-solides3d, on peut obtenir des représentations personnalisées que je suppose être beaucoup plus difficiles à réaliser avec Maple ou Mathematica, c’est un point qui sera développé avec comme sujet le Nautilius dans un autre fichier.

Le package, la documentation et les variations sur le nautile sont dans le dossier :


Voici quelques images extraites des 2 documents, obtenues avec le package :



jeudi 15 décembre 2016

Surfaces implicites avec PSTricks (suite)

Grâce à la collaboration d'Herbert Voss, la commande \psImplicitSurface[options]  est désormais intégrée au package pst-solides3d. De plus, elle a été améliorée par Herbert sur deux points :
  • mode algebraic ou postscript ;
  • limites des variables définies directement dans les options.
 Les exemples traités avec l'ancienne commande devront donc être adaptés. La mise à jour de pst-solides3d est disponible sur :


version 2 :

Le listing pour obtenir toutes les  images. La compilation (LaTeX=>dvips=>ps2pdf) est très longue : plus de 1 h !

\documentclass{article}
\usepackage[paperwidth=16cm,paperheight=11cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage{pst-solides3d}
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{unit=1}%
\multido{\iZ=0+8}{15}{%
\begin{pspicture}(-8,-7)(8,4)
\psframe[fillstyle=hlines,hatchangle=0](-8,-7)(8,4)
\pstVerb{/GREEN {0 0.7 0 setrgbcolor} def}%
\psset{lightsrc=100 30 60 rtp2xyz,viewpoint=100 60 35 rtp2xyz,Decran=150}
\psSolid[object=grille,base=-5 5 -5 5,ngrid=1. 1.,unit=0.75,
 fcol=0 20 80 { /i exch def
 0 2 8 {/j exch def
 j i add (white)
 j i 1 add add (GREEN)
 } for
 } for
 10 20 90 { /i exch def
 0 2 8 {/j exch def
 j i add (GREEN)
 j i 1 add add (white)
 } for
 } for
](0,0,-2)
\pstVerb{
/R 1 def
/r 0.25 def
/torusImplicit {
X dup mul Y dup mul add z dup mul add dup mul
-2 R dup mul r dup mul add mul X dup mul Y dup mul add mul
add
2 R dup mul r dup mul sub mul z dup mul mul
add
R dup mul r dup mul sub add
} def
/tripleTorus {
0 120 240 {/i exch def
 /X {x 1.5 i cos mul sub} def
 /Y {y 1.5 i sin mul sub} def
 torusImplicit
 } for
 mul mul
10 sub
} def}%
\pstVerb{
100 0 90 rtp2xyz
/zV exch def
/yV exch def
/xV exch def
/hZ 0 def
/Hshadow {
5 dict begin
/z exch def
/y exch def
/x exch def
/lambda hZ zV sub z zV sub div def
    xV lambda x xV sub mul add % x
    yV lambda y yV sub mul add % y
    -1.5 % z
end
 } def }%
{\psset{lightsrc=}
\psImplicitSurface[ImplFunction=tripleTorus,
                   fillcolor={[rgb]{0 0.4 0}},linecolor={[rgb]{0 0.4 0}},
                   RotZ=\iZ,linewidth=0,
                   transform=Hshadow,opacity=0.8,
                   XMinMax=-3 3 0.1,YMinMax=-3 3 0.1,ZMinMax=-0.5 0.5 0.1]}%
\psImplicitSurface[ImplFunction=tripleTorus,linewidth=0,
                   hue=1 0 1 1,RotZ=\iZ,
                   lightintensity=5,
                   XMinMax=-3 3 0.1,YMinMax=-3 3 0.1,ZMinMax=-0.5 0.5 0.1]
\psSolid[object=vecteur,
        definition={[.1 .5]},  %% radius height
        linecolor=black,
        args=0 0 2](0, 0, 0.25)
\end{pspicture}\newpage}
\end{center}
\end{document}

\documentclass{article}
\usepackage{pst-solides3d}
\begin{document}
\begin{center}
\begin{pspicture}(-4,-4)(4,4)
\psset{lightsrc=viewpoint,viewpoint=50 -20 30 rtp2xyz,Decran=50}
\psSolid[object=grille,base=-3 3 -3 3,ngrid=6 6,
 fcol=0 12 24 { /i exch def
 0 2 4 {/j exch def
 j i add (white)
 j i 1 add add (red)
 } for
 } for
 6 12 30 { /i exch def
 0 2 4 {/j exch def
 j i add (red)
 j i 1 add add (white)
 } for
 } for](0,0,-2)
\pstVerb{
/r 2 sqrt def
/r1 r 2 div def
/z1 r 1.5 mul 60 cos mul def
/z2 z1 def
/y1 r 1.5 mul 60 sin mul neg def
/y2 r 1.5 mul 60 sin mul def
/iface 0 store
/nbFaces {Faces length} def
}%
\psImplicitSurface[algebraic,ImplFunction=(x^2+y^2+z^2-2)*(x^2+(y-y1)^2+(z-z1)^2-r1^2)*(x^2+(y-y2)^2+(z-z2)^2-r1^2)-2,
                   XMinMax=-4 4 0.2,YMinMax=-4 4 0.2,ZMinMax=-4 4 0.2,
                   hue=1 0 0.5 1,
                   linewidth=0.01,linecolor={[rgb]{0 0 0.5}}]%
\gridIIID[Zmin=-2,Zmax=2,showAxes=false](-3,3)(-3,3)%
\end{pspicture}
\end{center}
\end{document}

vendredi 9 décembre 2016

Un modèle mathématique pour représenter les ammonites avec PSTricks, POV-Ray et Maple

La documentation au format pdf et le fichier source à compiler par la procédure habituelle :
LaTeX => DVIPS => ps2pdf sont ici :
 Tous les fichiers avec les méthodes POV-Ray et Maple ainsi que des versions PSTricks un peu plus étendues sont dans l'archive :
 D'abord, quelques images extraites de la documentation, réalisées avec PSTricks(comme l'image initiale) :
Modèle simplifié
Modèle plus élaboré comprenant les côtes de l'ammonite.

Ammonite avec enroulement serré.

Ammonite avec enroulement lâche.

Un maillage en fil de fer :

 Dont voici le code :

 \documentclass{article}
\usepackage{geometry}
\usepackage{pst-solides3d,pst-math}
%\title{Un modèle mathématique pour les ammonites}
%\date{8 décembre 2016}
%\author{manuel.luque27@gmail.com}
\begin{document}
\begin{center}
\begin{pspicture}(-6.5,-4)(5,5)
  \psset{viewpoint=100 120 60 rtp2xyz,Decran=100,lightsrc=20 60 10 rtp2xyz,solidmemory}%
\pstVerb{/Div {div} def
         /NT 20.5 def    % nbre d'ondulations
         /alpha 83 DegToRad def
         /ri 1.5 def
         /Am ri PI 1 alpha TAN div mul TANH div def
         /Euler 2.71828182846 def
         }%
\defFunction[algebraic]{ammonite}(u,v)
  {(Am+(ri+0.2*cos(NT*u))*cos(v))*cos(u)*Euler^(u/tan(alpha))}
  {(Am+(ri+0.2*cos(NT*u))*cos(v))*sin(u)*Euler^(u/tan(alpha))}
  {ri*sin(v)*Euler^(u/tan(alpha))}
\psSolid[object=surfaceparametree,unit=1,
  base=pi -10 mul 0 0  2 pi mul,
  fillcolor=gray!20,incolor=gray!20,opacity=0.5,
  function=ammonite,ngrid=720 36,linewidth=0.01,grid]%
\end{pspicture}
\end{center}
\end{document}

Les modèles obtenus avec Maple :
> restart : with(plots):
> N := 20.5: alpha := 1.4486; r := 1: A := r/tanh(Pi/tan(alpha));
> plot3d([(A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*cos(u), (A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*sin(u), r*sin(v)*exp(u/tan(alpha))], u = -10*Pi .. 0, v = -Pi .. Pi, grid = [720, 60], scaling = constrained, style = surface, color = "Chocolate");


> A := r/tanh(Pi/tan(alpha))-1;
> plot3d([(A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*cos(u), (A+(r+.1*cos(N*u))*cos(v))*exp(u/tan(alpha))*sin(u), r*sin(v)*exp(u/tan(alpha))], u = -10*Pi .. 0, v = -Pi .. Pi, grid = [720, 60], scaling = constrained, style = surface, color = "Gray");



Les modèles réalisés avec POV-Ray. Les textures sable sont de Friedrich A. Lohmüller :


Les fichiers sources sont dans l'archive indiquée au début.








samedi 26 novembre 2016

Mise à jour des liens de pst-gears : le package

Par exemple :


http://pstricks.blogspot.fr/2013/07/pst-gears-le-package.html

et

 http://pstricks.blogspot.fr/2013/06/pignon-cremaillere-application-1.html

voir la version 2020 :
http://pstricks.blogspot.com/2020/04/pst-gears-2020.html

Mise à jour des liens des fichiers de Thomas Söll

Suite à la fermeture (sans préavis ni explication) des pages perso de SFR, j'ai commencé à mettre à jour quelques liens notamment ceux de Thomas Söll : j'ai placé les fichiers sur Google Drive. J'avais d'abord  placé des dossiers zippés contenant tous les fichiers de Thomas, mais très rapidement Google a refusé que les utilisateurs téléchargent cette archive sous le prétexte d'utilisation abusive, pourtant  seulement moins de 100 personnes avaient essayé de télécharger ce fichier de moins de 20 Mo ! Google, SFR et d'autres ne sont pas des philanthropes, là où il n'y a pas de rentrée d'argent en vue ils ferment !
Les fichiers de Thomas sont maintenant dans un répertoire et il faut les télécharger individuellement. Cette solution sera t-elle pérenne ? J'en doute, mais voilà une solution certainement provisoire.
Pour retrouver tous les schémas de Thomas, il suffit de faire une recherche :

pstricks.blogspot.fr : Thomas Söll

Quelques schémas de Thomas :

 
Celui-ci que nous avions réalisé ensemble :

http://pstricks.blogspot.fr/2012/01/topographie-du-champ-electrique.html

Tous les schémas de Thomas sont d'une qualité exceptionnelle.





mercredi 23 novembre 2016

Mouvement brownien avec PSTricks

Il y a sur ce sujet de très nombreuses simulations réalisées dans tous les langages possibles, en voici une de plus avec PSTricks. Pour cette simulation, j’ai suivi la démarche de Pascale et Vincent Bourges qui ont concrétisé leur magnifique travail avec Maple :
PSTricks ne possédant pas les outils statistiques de Maple, quelques commandes supplémentaires écrites en Postscript ont été nécessaires. Quelques images :

Le mouvement Brownien des poussières dans un rayon de lumière est décrit de très jolie façon par W.G. Sébald dans son livre Vertiges, page 136, dans un chapitre d’une tristesse infinie.
W.G. Sébald suit les traces de Stendhal et Kafka en Italie. Ainsi ce 20 septembre 1913 à Vérone :
 « Dans la soirée,le Dr K. s’aperçoit que peu à peu des gens de plus en plus nombreux, sans d’autre raison que leur plaisir, commencent à descendre dans la rue, par couples, par trois ou plus encore, tous bras dessus bras dessous. Peut-être étaient-ce les réclames des spettacoli lirici all’Arena toujours placardées depuis août à tous les coins de rue, les grandes lettres d’AÏDA que ses yeux ne cessaient de lire, qui lui firent voir dans cette insouciance et cette étroite complicité manifestée par la
population de Vérone un rassemblement mis en scène dans le seul but de le confronter à son isolement et sa différence, pensée qui ne le quitte plus et dont pour s’échapper il n’eut d’autre moyen que de fuir dans un cinématographe, sans doute le Cinéma Pathé di San Sébastiano. Assis dans l’obscurité de la salle, consigna-t-il le lendemain à Desenzano, il avait suivi en pleurs, la danse des poussières scintillantes se métamorphosant en images. La note de Desenzano n’indique pas ce que Dr K. a vu ce 20 septembre à Vérone. »

Je n’ai pas retrouvé cette journée dans le journal de Kafka traduit par Marthe Robert et publié par les éditions Grasset.
Les fichiers sont dans l'archive :






mardi 22 novembre 2016

Fermeture des pages personnelles et serveurs associés de SFR-Numéricable

 SFR-Numéricable a fermé définitivement, sans prévenir, sans aucune explication, toutes les pages perso et serveurs de ses clients. À peu près 400 liens de ce blog dédié à PSTricks sont donc obsolètes, ils aboutissent à une page titrée :

Pages Perso - Fermeture

Contrairement à leurs affirmations aucun message n'a été envoyé, aucune explication donnée. 
J'essaierai de trouver un nouveau serveur et ensuite petit à petit de rétablir des liens valides, mais ce ne sera pas dans l'immédiat.

Désolé.

D'ici là, si un fichier qui n'est plus disponible vous intéresse vous pouvez m'envoyer un message.

Tous les fichiers sont progressivement transférés sur Google Drive en espérant que là aussi il n'y aura pas de problèmes ?

Manuel

lundi 7 novembre 2016

Des mosaïques avec PSTricks

Dans le numéro 96 d’octobre 1985 de la revue “Pour la Science” l’article de la rubrique “Jeux mathématiques” a pour titre “Du jeu de l’hexagone et de la marguerite à la création de mosaïques”, son auteur est Pierre Tougne. Cet article est inspiré du jeu d’un auteur belge Jean-Pierre Labrique, en voici le principe tel que le décrit Pierre Tougne :
« Il se joue sur une grille de cases circulaires(ou hexagonales) disposées selon un réseau hexagonal régulier [. . . ] Pour remplir une grille, c’est-à-dire « poser le problème », on noircit arbitrairement un certain nombre de cases puis l’on code cette grille à l’aide d’une marguerite à sept trous dont on applique la case centrale sur chaque case de la grille l’une après l’autre. Cette marguerite sélectionne les six cases voisines de la case choisie(ou cinq si la case est sur un bord de la grille ou quatre quand c’est un sommet) et l’on inscrit dans la case centrale en face du trou de la marguerite le nombre de cases noires situées dans la marguerite. En procédant ainsi sur toutes les cases de la grille de départ, on obtient une grille codée ; sur cette grille on n’indique évidemment pas quelles sont les cases noires. Le but du jeu est de reconstituer le tableau original des cases à partir de la seule grille codée. »
Ensuite Pierre Tougne développe une méthode permettant de décoder la grille et dans la dernière partie il décrit l’application du codage de la marguerite pour créer des mosaïques, application développée aussi par J.P. Labrique :
« . . . on part d’un motif quelconque de cases noires sur une grille hexagonale que l’on code à l’aide de la marguerite en plaçant sa case centrale sur ces cases noires et les plus proches voisines de ces cases noires. Ce codage étant effectué, on en déduit le motif de la génération suivante en noircissant les cases de code impair et en laissant blanches les cases de code impair, puis on recommence. »
Jean-Bernard Roux a déjà exploité cette idée sous le titre “Un démineur hexagonal” sur son site :
il en donne de très belles réalisations et propose un exemple de code en MatLab, mais malheureusement je ne possède pas ce logiciel. D’où ce package pst-mosaic permettant de créer des mosaïques sur ce principe.
La documentation incluse dans l'archive(zip)  décrit toutes les options du package, de nombreux exemples et une animation réalisée avec le package animate d'Alexander Grahn.
Voici quelques exemples extraits de la documentation :
Image dont les couleurs ont été inversées avec The Gimp.
Image originale


mise à jour le 8 novembre 2016.
09 novembre 2016 : version 1.1 Possibilité de créer soi-même une graine.
11 novembre 2016 : version 1.2 : Dégradé de couleurs plus régulier. Possibilité de  modifier la répartition des cases noires avec l'option mod.
14 novembre 2016 : version 1.3 : inversion de couleurs possible directement avec l'option : hsbcolorInverse. Quelques exemples de mosaïques géantes rajoutées.