mercredi 7 juin 2017

pst-rputover : un package de Martin J. Osborne et Thomas Söll

L’idée de ce package a ´été suggérée par l’utilisateur de StackExchange, Werner sur cette cette page. La solution proposée par Martin J. Osborne a été développée conjointement par ce dernier et Thomas Söll sous la forme d’un package.
pst-rputover est un package très puissant, mais spécialisé sur un point particulier : afficher un texte, une expression mathématique entre 2 points reliés par une ligne en faisant disparaître la ligne sous le texte mais en conservant le fond et les couleurs sous celui-ci et cela de manière simple. Ce matériel peut-être positionné en un point quelconque et tourné de n’importe quel angle. Cet utilitaire peut-être utilisé de plusieurs façons.
Si l’on a plusieurs textes à placer sur la figure, on pourra utiliser autant de fois que l’on veut la commande :
\rputover[Options]{angle}(x0,y0){any material}(x1,y1)(x2,y2)
– un compteur interne mémorisant les labels, chaque texte est indexé à un label de LATEX. Cette suite de commandes sera suivie de la commande \coverable{any material}
L’argument de \coverable comprenant tous objets que vous souhaitez être couverts par les textes des commandes \rputover précédentes.
 La commande \rputover comprend de nombreuses options décrites dans la documentation.

La deuxième méthode est à employer s’il n’y a qu’un texte à placer. On pourra alors utiliser une des 2 autres commandes suivantes :
\pcarrowC[options]{<->}{any material}(x1,y1)(x2,y2)
ou
\pclineover[options]{any material}(x1,y1)(x2,y2)
qui sont des combinaisons des \rputover et \coverable.

Une dernière remarque concerne l’option de \coverable[inverscl], [inverscl=false] qui est un booléen positionné par défaut, et pour lequel on observe les images précédentes.
Positionné à true ce booléen donne des résultats intéressants(suivant les souhaits de l’utilisateur) car il inverse le clip. Mais il faut l’utiliser avec précaution. Par exemple, dans le fichier source supprimez le \newpage suivant, lorsque c'est indiqué.
D'autres exemples sont disponibles dans le dossier :
Le fichier zippé contenant tous les fichiers.
 Pour terminer, voici 2 anciens exemples de Thomas Söll(présents sur ce blog) qui ont été actualisés avec les commandes de pst-rputover.

vendredi 2 juin 2017

pst-vehicle : nouveau et original package pour PSTricks

Ce package créé à l'initiative de Thomas Söll avec la collaboration de Jürgen Gilg et ma participation, est disponible sur le serveur du CTAN :

la documentation contient toutes les explications nécessaires à son utilisation.
Ceci est une présentation sommaire des objectifs du package et quelques illustrations.
Les véhicules sont des engins à 2 roues (tout au moins vus de profil) et à une roue. Ces engins peuvent rouler sans glissement sur une courbe définie par sa fonction y=f(x).
Une option permet de tracer la droite joignant les points de contact des roues avec la courbe ou la tangente au point de contact s'il s'agit d'un monocycle.
Une autre particularité est la possibilité d'afficher un inclinomètre (Slope-o-Meter) très joliment dessiné.
6 véhicules sont prédéfinis, mais peuvent être personnalisés par le choix de la couleur ou des roues dont 12 types sont prédéfinies.
Il est également possible de dessiner son propre véhicule.
Thoma Söll a rédigé la théorie du roulement sans glissement d'un cercle sur une courbe  y=f(x). Elle est incluse dans la documentation.


Ce dossier contient  une pré-version du package ainsi que les exemples et animations illustrant la suite de cet article. Le fichier zippé contient tous les fichiers. Les animations au format gif qui sont affichées ci-dessous sont composées de 200 images, il faut donc attendre que toutes images soient dans le cache de votre navigateur pour que l'animation soit fluide.
  Les véhicules :
Un véhicule imaginé et créé :


les animations :




vendredi 12 mai 2017

Pavage du Caire avec PSTricks : partie 1

Ce type de pavage fait l'objet d'une très belle étude de la part de Robert Ferréol :
https://www.mathcurve.com/polyedres/pavageducaire/pavageducaire.shtml
Dans son extraordinaire site dédié aux arts islamiques :
http://catnaps.org/islamic/geometry2.html
John Lockerbie étudie et illustre le pavage du Caire et son dual :
http://catnaps.org/islamic/geometry2.html#a5pointdev

Cette première partie utilise pour ses illustrations le package `pst-fill'. Il est simple d'emploi mais il ne permet pas de réaliser un certain nombre de variations qui existent pour ce type de pavage. La deuxième partie essayera de lever ces limitations.
Pour cette première partie, source TeX et pdf sont dans le répertoire :
Voici quelques images extraites du document :
Le pavé pentagonal :
 Le centre de gravité et les projections de G sur les côtés (pour le dual et de futurs pavages) :
Le motif hexagonal et le motif pour le pavage avec pst-fill :
2 exemples de pavages obtenus avec pst-fill :
Le motif pour le dual :

 image du pavage et de son dual avec pst-fill :
Image du dual :
Un autre type de pavage utilisant le pavé pentagonal et un pavé hexagonal :
Le pavé hexagonal est entouré de 6 pavés pentagonaux. Cet ensemble forme un autre hexagone.
 Le motif du pavage pour pst-fill :
Le pavage :
Un exemple de pavage coloré :







mercredi 26 avril 2017

Le triple Fidget Spinner sous forme d'un package `pst-spinner'

Par rapport à la version précédente :
une erreur de calcul a été corrigée et la possibilité de personnaliser l'objet avec une image a été rajoutée, comme le montre cette animation :
Cette version est téléchargeable dans le répertoire :
Le fichier pst-spinner.zip contient tous les fichiers actuels. Certains devront être compilés pour obtenir les fichiers pdf correspondants.
Nouvel exemple personnalisé :
Il est dans le répertoire indiqué ci-dessus, ainsi qu'un fichier spinner-principe.pdf et son fichier source spinner-principe.tex illustrant le principe de construction de l'objet.
Pour ce troisième exemple, il faut enregistrer le listing suivant sous le nom de cercles-hsb.eps
dans le même répertoire que celui de compilation :

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -155 -155 155 155
newpath
150 0 moveto
0 0 150 0 360 arc
closepath
0.9 setgray
fill
0 10 150 {/i exch def
newpath
i 0 moveto
0 0 i 0 360 arc
closepath
i 150 div 1 1 sethsbcolor
5 setlinewidth
stroke
} for

puis enregistrer le listing suivant, par exemple sous le nom de exemple3-pst-spinner.tex puis le compiler le fichier suivant avec la procédure habituelle : LaTeX=>DVIPS=>ps2pdf
Le package pst-spinner est à récupérer dans le répertoire indiqué au début.

\documentclass{article}
\usepackage{pst-spinner,animate}
\begin{document}
\begin{center}
\begin{animateinline}[controls,loop,
                     begin={\begin{pspicture}(-5,-5)(5,5)},
                     end={\end{pspicture}}]{25}% 25 images/s
\multiframe{72}{i=0+-5}{%
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=orange,
    subgridwidth=0.1pt,%
    subgridcolor=orange](-5,-5)(5,5)
\psFidgetSpinner[R=3.9,colorMask=blue,linewidth=0.05,mask,customize,customizeMask,image=cercles-hsb.eps,rotation=\i]
\rput(0,0){\textbf{PSTricks}}
}
\end{animateinline}
\end{center}
\end{document} 

Voici l'animation gif obtenue :







dimanche 23 avril 2017

Triple Fidget Spinner.avec PSTricks

Cet article a pour but de proposer un modèle de ce gadget très à la mode actuellement. Il existe sous différentes formes, avec 2, 3 pôles et même davantage. J’ai choisi le modèle le plus répandu : le triple Fidget Spinner. Les dimensions du modèle sont liées à celle des roulements à billes : diamètre extérieur 22 mm et diamètre intérieur  8 mm. L’axe composé d’un roulement à billes de qualité est au centre d’un triangle équilatéral aux sommets duquel sont placés des roulement à billes identiques à celui de l’axe mais de qualité quelconque ou des bagues de couleur. Le contour de l’objet est constitué d’arcs de cercles parfaitement raccordés.
La commande s’écrit : \psFidgetSpinner[options]. Les options sont décrites dans la documentation.

Les fichiers sont dans le répertoire :
Le fichier zippé contient tous les fichiers actuels.
Sous forme de package, voir la page suivante :


Voici 2 images et 2 animations :
Une petite expérience illustrée par les 2 animations ci-dessus. On tient le Fidget Spinner  entre le pouce et le majeur en le faisant tourner dans un sens puis on le retourne rapidement, vous constaterez que le sens de rotation s'inverse.

lundi 10 avril 2017

Mosaïque qui orne la tête de Méduse

Il s'agit d'un essai de reproduction de la mosaïque qui orne la tête de Méduse, mosaïque conservée au musée Paul Getty à Los Angeles :
 Mosaic-Floor-with-Head-of-Medusa1.jpg
 C'est la suite des articles précédents consacrés aux mosaïques :
http://pstricks.blogspot.fr/2017/04/arc-en-ciel-en-spirales.html
http://pstricks.blogspot.fr/2017/04/mosaiques-en-spirale-le-package.html
http://pstricks.blogspot.fr/2017/04/mosaiques-en-spirale-une-animation.html
http://pstricks.blogspot.fr/2017/03/mosaiques-en-spirale.html

La package pst-spiralmosaic est dans le répertoire :
Le listing :
\documentclass[12pt]{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{pst-spiralmosaic,multido}
\usepackage[colorlinks]{hyperref}
% manuel.luque27@gmail.com
\title{Reproduction de la mosaïque qui orne la tête de Méduse}
\author{manuel.luque27@gmail.com}
\date{10 avril 2017}
\definecolor{marron}{rgb}{0.87,0.6,0.087}
\begin{document}
\maketitle
Il s'agit d'un essai de reproduction de la mosaïque qui orne la tête de Méduse. Mosaïque conservée au musée Paul Getty à Los Angeles :

\centerline{\footnotesize\url{http://www.thehistoryblog.com/wp-content/uploads/2016/04/Mosaic-Floor-with-Head-of-Medusa1.jpg}}

Dans mon exemple, ce sont des spirales d'Archimède qui génèrent la mosaïque avec le package \textsf{pst-spiralmosaic}, il reste à placer la tête de Méduse au centre.

\begin{center}
\def\mosaicA{\psSpiralMosaic[n=20,k=2,linestyle=none,backgroundcolor=white,colorA=marron,colorB=marron]}%
\def\mosaicB{\psSpiralMosaic[n=20,k=2,linestyle=none,backgroundcolor=blue,colorB=white,colorA=white]}%
\begin{pspicture}(-5.2,-5.2)(5.2,5.2)
\multido{\n=0.0+0.5,\I=1+1,\N=0.5+0.5}{10}{%
\psclip{\pscustom[linestyle=none]{\psarc(0,0){\n}{0}{360}\psarcn(0,0){\N}{360}{0}}}
\ifodd\I \mosaicA \else \mosaicB \fi\endpsclip%}
}%%
\pscircle[linewidth=0.1]{5.1}
\end{pspicture}
\end{center}
%\end{document}
2 variantes :
\begin{center}
\def\mosaicA{\psSpiralMosaic[n=20,k=2,linestyle=none,backgroundcolor=white,colorA=red,colorB=red]}%
\def\mosaicB{\psSpiralMosaic[n=20,k=2,linestyle=none,backgroundcolor=blue,colorB=white,colorA=white]}%
\begin{pspicture}(-5.2,-5.2)(5.2,5.2)
\multido{\n=0.0+0.5,\I=1+1,\N=0.5+0.5}{10}{%
\psclip{\pscustom[linestyle=none]{\psarc(0,0){\n}{0}{360}\psarcn(0,0){\N}{360}{0}}}
\ifodd\I \mosaicA \else \mosaicB \fi\endpsclip%}
}%%
\pscircle[linewidth=0.1]{5.1}
\end{pspicture}
\end{center}

\begin{center}
\def\mosaicA{\psSpiralMosaic[n=20,k=2,linestyle=none,backgroundcolor=white,colorA=red,colorB=red]}%
\def\mosaicB{\psSpiralMosaic[n=20,k=2,linestyle=none,backgroundcolor=blue,colorB=white,colorA=white]}%
\begin{pspicture}(-5.2,-5.2)(5.2,5.2)
\multido{\i=1+1}{8}{%
\pstVerb{/radius1 \i\space 2 div def /radius2 radius1 0.5 add def}%
\psclip{\pscustom[linestyle=none]{\psarc(0,0){!radius1}{0}{360}\psarcn(0,0){!radius2}{360}{0}}}
\ifodd\i\mosaicA \else\rput{!360 12 div}{\mosaicB}\fi
\endpsclip%}
}%%
\end{pspicture}
\end{center}
\end{document}