« Suspendu par une corde attachée au haut de la croisée de la cathédrale, l’encensoir gigantesque est dévié, d’une poussée, de sa position de repos verticale. Pendant qu’il se balance, huit hommes tirent sur une corde qui soulève l’encensoir lorsque celui-ci passe par la verticale et relâchent la corde quand l’encensoir est au plus haut. Les tireurs, sous les ordres d’un conducteur, amplifient ainsi les oscillations de l’encensoir, jusqu’à ce que celui-ci monte à une hauteur de 21 mètres, décrit un arc de 65 mètres de longueur, et passe en vrombissant à la vitesse de 68 kilomètres à l’heure en un point situé à ras du sol. »
« . . . le dispositif actuel a, en son centre, deux tambours de châtaignier, de 58 centimètres et 29 centimètres de diamètre, dont l’axe commun repose sur la carcasse métallique. . . . L’encensoir actuel est en laiton argenté. »
« La corde dont une extrémité est dans les mains des tireurs s’enroule d’abord autour du tambour de petit diamètre, puis autour du tambour de grand diamètre, et redescend vers le sol ; la seconde extrémité est nouée à l’encensoir. Quand l’encensoir et la corde passent par la position verticale, les hommes tirent sur l’autre extrémité de la corde qui fait tourner le petit tambour de plus d’un tour et demi, lequel entraîne le grand tambour et la même corde soulève ainsi l’encensoir d’environ trois mètres. Ce dispositif à double tambour amplifie les déplacements. Les tireurs relâchent la même longueur de corde lorsque l’encensoir atteint le point d’amplitude maximale. Après la poussée initiale, l’amplitude angulaire est d’environ 13 degrés. En 80 secondes et 17 demi-périodes d’oscillation de l’encensoir, l’amplitude maximale de 82 degrés est atteinte, l’encensoir atteignant un point situé à un demi-mètre sous la voûte.»
Cité d’un article “Pour la science” numéro 155, de Juan Sanmartin Losada.
La vidéo d'une cérémonie du Botafumeiro à la cathédrale de Saint-Jacques-de-Compostelle :
Une animation et quelques figures de l'encensoir de Botafumeiro par Juergen Gilg.
Les fichiers sont dans le répertoire :
dimanche 17 février 2019
jeudi 14 février 2019
polexpr et xint : applications (2)
Le polynôme de Wilkinson
Le polynôme de Wilkinson est d'apparence très simple, sous sa forme factorisée, il est défini par :
Il y a une très belle étude sur Wikipedia :
Le mathématicien James H. Wilkinson qui a donné son nom au polynôme a titré son article : "The perfidious polynomial". Pour ceux qui souhaitent lire l'article original, voici le lien où on peut le télécharger.
Les extensions polexpr et xint de Jean-François Burnol ont déjà été présentées dans un précédent article :
elles sont disponibles sur le CTAN :
C'est polexpr qui a permis de réaliser la magnifique étude illustrée de ce polynôme, où on verra pourquoi J. H. Wilkinson le qualifia de ``perfide''. Pour les calculs avec les logarithmes une extension ``poormanlog.sty'' est nécessaire, elle est présente dans le répertoire et dans le fichier zippé. Tous les fichiers sont dans ce répertoire :
Ce document est l’œuvre de Jean-François Burnol, Juergen Gilg et Thomas Soell. J'ai très modestement aidé à mettre au point les illustrations avec PSTricks, mais les calculs à partir de la forme développée des polynômes (voir le document) nécessitent une précision qui dépasse les possibilités de Postscript, la précision des calculs est discutée en détail dans le document. L'extension polexpr a permis de lever les limitations de Postscript et de dessiner les courbes.
Si un lecteur de cette page est aussi un utilisateur de Tickz et s'il souhaite en donner une version et la faire partager, il sera le bienvenu.
Je ne donne ici que quelques images, il faut lire le document et regarder le listing pour apprécier la puissance et la simplicité de l'extension polexpr. Par exemple, la syntaxe utilisée pour définir le polynôme s'écrit :
\poldef W(x):= mul(x-i, i=1..20);
L’appel $\PolTypeset{W}$ permet de l’afficher sous forme développée :W(x) =
x20− 210x19 + 20615x18
− 1256850x17 + 53327946x16 − 1672280820x15
+ 40171771630x14 − 756111184500x13 +11310276995381x12
-135585182899530x11+1307535010540395x10
−10142299865511450x9+63030812099294896x8
−311333643161390640x7+1206647803780373360x6
-3599979517947607200x5+8037811822645051776x4
−12870931245150988800x3+13803759753640704000x2
−8752948036761600000x+2432902008176640000
Wilkinson's polynomial
sgn(W(x)) log(1 + |W(x)|)
Calculs effectués avec postscriptLa particularité du polynôme de Wilkinson est d’être extrêmement sensible aux plus infimes variations des coefficients. On le voit sur le graphique ci-dessus, où la nouvelle courbe est celle des (logarithmes des) valeurs du polynôme obtenu par la modification du coefficient du terme en x19 en lui ajoutant −2−23. Cette minime variation sur le coefficient sous-dominant a eu un effet dévastateur à partir de x = 9 : les racines du polynôme, sauf celle proche de x = 20 sont devenues complexes !
L’extension polexpr ne sait pas faire les calculs avec des complexes mais est capable de déterminer avec une précision arbitraire tous les zéros réels et leurs multiplicités :
(mult. 1) Z1 = 0.99999999999999999999 . . .
(mult. 1) Z2 = 2.00000000000000000976 . . .
(mult. 1) Z3 = 2.99999999999980523297 . . .
(mult. 1) Z4 = 4.00000000026102318914 . . .
(mult. 1) Z5 = 4.99999992755153790956 . . .
(mult. 1) Z6 = 6.00000694395229570720 . . .
(mult. 1) Z7 = 6.99969723393601394867 . . .
(mult. 1) Z8 = 8.00726760345037685489 . . .
(mult. 1) Z9 = 8.91725024851707049429 . . .
(mult. 1) Z10 = 20.84690810148225691492 . . .
PS : le répertoire contient aussi un petit fichier de calculs de logarithmes avec l'extension poormanlog écrit par Juergen Gilg qui pourra éventuellement servir de mode d'emploi (tests-poormanlog.tex et pdf).
Tous les fichiers concernant les applications des extensions polexpr et xint de Jean-François Burnol présentées dans ce blog et des exemples d'utilisation de celles-ci avec PSTricks sont disponibles aussi sur :
jeudi 7 février 2019
polexpr et xint : applications (1)
polexpr et xint sont deux packages créés par Jean-François Burnol, disponibles sur le serveur du CTAN :
xint qui permet les calculs sur les très grands nombres est constitué de plusieurs modules.
polexpr permet de faire du calcul formel et numérique avec des polynômes ayant des coefficients rationnels (ou en notation scientifique) : calcul de dérivées, de PGCD, calcul du « contenu de Gauss » (générateur de l'idéal fractionnaire engendré par les coefficients), possibilité de trouver toutes les racines réelles avec une précision arbitrairement grande (et leurs multiplicités) et d'identifier au passage toutes les racines rationnelles, et de produire le polynôme obtenu en supprimant toutes les racines rationnelles, ou en supprimant toutes les multiplicités.
Pour le moment, polexpr (qui en est à la version 0.7.4) a les limitations suivantes :
Les commandes écrites par Jürgen Gilg et Thomas Söll sont dans le préambule des documents, ils envisagent d'en faire un package avec la documentation.
Les documents, source .tex et pdf sont dans le répertoire :
Le fichier zippé les contient tous.
Il m'est difficile de donner un aperçu de cette première série d'applications(j'espère que Jürgen Gilg et Thomas Söll en enverront d'autres) dans cette page, car elle n'est pas configurée pour afficher des équations mathématiques.
Dans polynom-example.tex, la courbe d'équation f'(x)=x^3+7x^2+14x+8 est étudiée, ses dérivées première et deuxième calculées ainsi que l'équation de la tangente en un point, PSTricks en fait les représentations graphiques.
Dans le fichier Calculations-matrices.tex, vous y verrez une démonstration de la puissance du calcul matriciel exploitant les extraordinaires possibilités des packages polexpr et xint mises en œuvre par Jürgen Gilg et Thomas Söll.
Dans le fichier RationalFunction.tex, ils étudient une fonction rationnelle, en font calculer les dérivées jusqu'au troisième ordre :
et dessiner les représentations graphiques par PSTricks :
Tous les fichiers concernant les applications des extensions polexpr et xint de Jean-François Burnol présentées dans ce blog et des exemples d'utilisation de celles-ci avec PSTricks sont disponibles aussi sur :
xint qui permet les calculs sur les très grands nombres est constitué de plusieurs modules.
polexpr permet de faire du calcul formel et numérique avec des polynômes ayant des coefficients rationnels (ou en notation scientifique) : calcul de dérivées, de PGCD, calcul du « contenu de Gauss » (générateur de l'idéal fractionnaire engendré par les coefficients), possibilité de trouver toutes les racines réelles avec une précision arbitrairement grande (et leurs multiplicités) et d'identifier au passage toutes les racines rationnelles, et de produire le polynôme obtenu en supprimant toutes les racines rationnelles, ou en supprimant toutes les multiplicités.
Pour le moment, polexpr (qui en est à la version 0.7.4) a les limitations suivantes :
- il ne connaît pas les nombres complexes,
- il ne connaît pas les fractions rationnelles (mais on peut ajouter des macros, comme dans le travail de Jürgen Gilg et Thomas Söll),
- il ne sait manipuler qu'une seule variable formelle à la fois,
- il représente intérieurement les polynômes par la suite de leurs coefficients, ce qui rend peu efficace la manipulation de polynômes de grands degrés comme x^1000-1.
Les commandes écrites par Jürgen Gilg et Thomas Söll sont dans le préambule des documents, ils envisagent d'en faire un package avec la documentation.
Les documents, source .tex et pdf sont dans le répertoire :
Le fichier zippé les contient tous.
Il m'est difficile de donner un aperçu de cette première série d'applications(j'espère que Jürgen Gilg et Thomas Söll en enverront d'autres) dans cette page, car elle n'est pas configurée pour afficher des équations mathématiques.
Dans polynom-example.tex, la courbe d'équation f'(x)=x^3+7x^2+14x+8 est étudiée, ses dérivées première et deuxième calculées ainsi que l'équation de la tangente en un point, PSTricks en fait les représentations graphiques.
Dans le fichier Calculations-matrices.tex, vous y verrez une démonstration de la puissance du calcul matriciel exploitant les extraordinaires possibilités des packages polexpr et xint mises en œuvre par Jürgen Gilg et Thomas Söll.
Dans le fichier RationalFunction.tex, ils étudient une fonction rationnelle, en font calculer les dérivées jusqu'au troisième ordre :
et dessiner les représentations graphiques par PSTricks :
Tous les fichiers concernant les applications des extensions polexpr et xint de Jean-François Burnol présentées dans ce blog et des exemples d'utilisation de celles-ci avec PSTricks sont disponibles aussi sur :
lundi 28 janvier 2019
Cercle tangent extérieurement à 3 cercles
Je rajoute une précision, communiquée par Juergen Gilg. C'est un sujet qui a été initié sur :
par l'auteur de pseudonyme `chishimotoji'. De nombreux participants ont développé le sujet dont Juergen Gilg.
Juergen Gilg en collaboration avec Jean-François Burnol pour les calculs, propose une illustration d'un cas particulier du problème d'un cercle tangent à 3 cercles. Un triangle rectangle ABC étant donné, on trace les demi-cercles dont les diamètres sont les côtés, extérieurs au triangle et on détermine le centre et le rayon du cercle tangent extérieurement aux demi-cercles. On dessine aussi le triangle dont les sommets sont les points de tangence.
Si Juergen Gilg est bien connu des lecteurs de ces pages, précisons que Jean-François Burnol est l'auteur de nombreux packages touchant aux mathématiques et en particulier sur les calculs avec les grands nombres, on aura un aperçu de ses travaux déposés sur le CTAN en allant sur :
En utilisant le package animate d'Alexander Grahn, vous aurez la possibilité de créer une animation interactive incluse dans un pdf ou au format SVG sur l'un des principaux navigateurs. Voici celles créées par Juergen Gilg :
\documentclass[dvipsnames]{article}
\usepackage{pstricks,pst-eucl,animate}
% Authors : Juergen Gilg and Jean-François Burnol
\begin{document}
\begin{center}
\begin{animateinline}[%
controls,
palindrome,
begin={\begin{pspicture}(-5.5,-5.5)(9.5,12.5)},
end={\end{pspicture}}
]{7}% frame rate = 2 image/s
\multiframe{20}{rA=4+0.2,rB=3+-0.05}{%
\pstVerb{%
%% Enter the coordinates of the points of the rectangled triangle
%% Chosen as within the given cercle.pdf (Pythagorean triple 3, 4, 5 for a, b, c)
/xA 0 def
/yA 0 def
/xB \rA\space def
/yB 0 def
/xC 0 def
/yC \rB\space def
%% Midpoints of the sides
/mAx xB xC add 2 div def
/mAy yB yC add 2 div def
/mBx xA xC add 2 div def
/mBy yA yC add 2 div def
/mCx xA xB add 2 div def
/mCy yA yB add 2 div def
%% Calculating the radius of the half circles along the sides of the
%% rectangled triangle
/rAB xA xB sub 2 exp yA yB sub 2 exp add sqrt 2 div def
/AB rAB 2 mul def
/rAC xA xC sub 2 exp yA yC sub 2 exp add sqrt 2 div def
/AC rAC 2 mul def
/rBC xB xC sub 2 exp yB yC sub 2 exp add sqrt 2 div def
/BC rBC 2 mul def
/DENOM BC 5 mul AB 3 mul add AC 3 mul add def
%% JFB formula
%% X = 2 AB (AB + BC) / (5 BC + 3 AB + 3 AC)
%% Y = 2 AC (AC + BC) / (5 BC + 3 AB + 3 AC)
%% R = 2 (BC + AB) (BC + AC) / (5 BC + 3 AB + 3 AC)
/x0 AB BC add AB mul 2 mul DENOM div def
/y0 AC BC add AC mul 2 mul DENOM div def
/r0 BC AB add BC AC add mul 2 mul DENOM div def
%% JFB formula for the tangent points
%% P1 = (2(a+c)c, -(a+b+c)c) / (3a + b + 2c)
%% P2 = (-(a+b+c)b, 2(a+b)b) / (3a + 2b + c)
%% P3 = ((a+b+c)(a+c), (a+b+c)(a+b))/ (3a + 2b + 2c)
/p1x BC AB add AB mul 2 mul BC 3 mul AC add AB 2 mul add div def
/p1y BC AC add AB add AB mul BC 3 mul AC add AB 2 mul add div neg def
/p2x BC AC add AB add AC mul BC 3 mul AC 2 mul add AB add div neg def
/p2y BC AC add AC mul 2 mul BC 3 mul AC 2 mul add AB add div def
/p3x BC AC add AB add BC AB add mul BC 3 mul AC 2 mul add AB 2 mul add div def
/p3y BC AC add AB add BC AC add mul BC 3 mul AC 2 mul add AB 2 mul add div def
}
%% Setting the nodes of the points of the triangle
\pstGeonode[PointSymbol=none,PosAngle={225,-45,90}](!xA yA){A}(!xB yB){B}(!xC yC){C}
%\pspolygon[linecolor=blue,linejoin=1](A)(B)(C)
%% Setting the nodes of the midpoints of the triangle sides
\pstMiddleAB[PointSymbol=none,PointName=none]{A}{B}{MAB}
\pstMiddleAB[PointSymbol=none,PointName=none]{A}{C}{MAC}
\pstMiddleAB[PointSymbol=none,PointName=none]{B}{C}{MBC}
%% Full circles along the sides of the triangle (not needed!)
%\pscircle(MAB){!rAB}
%\pscircle(MAC){!rAC}
%\pscircle(MBC){!rBC}
%% Drawing the half circles along the sides of the triangle
\pstArcOAB[linecolor=lightgray]{MAB}{A}{B}
\pstArcOAB[linecolor=lightgray]{MAC}{C}{A}
\pstArcOAB[linecolor=lightgray]{MBC}{B}{C}
%% JFB circle and tangent points
\pnode(!x0 y0){O}
\pnode(!p1x p1y){P1}
\pnode(!p2x p2y){P2}
\pnode(!p3x p3y){P3}
\pscircle[linecolor=Green](O){!r0}
\psdot[linecolor=Green](O)\uput[-90](O){\textcolor{Green}{$O$}}
\psdot[linecolor=red](P1)\uput[-90](P1){$P_1$}
\psdot[linecolor=red](P2)\uput[180](P2){$P_2$}
\psdot[linecolor=red](P3)\uput[90](P3){$P_3$}
\pspolygon[linejoin=1,linecolor=red,linewidth=0.5pt](P1)(P2)(P3)
\psline[linecolor=Green]{->}(O)(P3)
\pstMiddleAB[PointSymbol=none,PointName=none]{O}{P3}{rad}
\uput{7pt}[0](rad){\footnotesize\textcolor{Green}{$r$}}
\pspolygon[linecolor=blue,linejoin=1](A)(B)(C)
}
\end{animateinline}
\end{center}
\end{document}
par l'auteur de pseudonyme `chishimotoji'. De nombreux participants ont développé le sujet dont Juergen Gilg.
Juergen Gilg en collaboration avec Jean-François Burnol pour les calculs, propose une illustration d'un cas particulier du problème d'un cercle tangent à 3 cercles. Un triangle rectangle ABC étant donné, on trace les demi-cercles dont les diamètres sont les côtés, extérieurs au triangle et on détermine le centre et le rayon du cercle tangent extérieurement aux demi-cercles. On dessine aussi le triangle dont les sommets sont les points de tangence.
Si Juergen Gilg est bien connu des lecteurs de ces pages, précisons que Jean-François Burnol est l'auteur de nombreux packages touchant aux mathématiques et en particulier sur les calculs avec les grands nombres, on aura un aperçu de ses travaux déposés sur le CTAN en allant sur :
En utilisant le package animate d'Alexander Grahn, vous aurez la possibilité de créer une animation interactive incluse dans un pdf ou au format SVG sur l'un des principaux navigateurs. Voici celles créées par Juergen Gilg :
\documentclass[dvipsnames]{article}
\usepackage{pstricks,pst-eucl,animate}
% Authors : Juergen Gilg and Jean-François Burnol
\begin{document}
\begin{center}
\begin{animateinline}[%
controls,
palindrome,
begin={\begin{pspicture}(-5.5,-5.5)(9.5,12.5)},
end={\end{pspicture}}
]{7}% frame rate = 2 image/s
\multiframe{20}{rA=4+0.2,rB=3+-0.05}{%
\pstVerb{%
%% Enter the coordinates of the points of the rectangled triangle
%% Chosen as within the given cercle.pdf (Pythagorean triple 3, 4, 5 for a, b, c)
/xA 0 def
/yA 0 def
/xB \rA\space def
/yB 0 def
/xC 0 def
/yC \rB\space def
%% Midpoints of the sides
/mAx xB xC add 2 div def
/mAy yB yC add 2 div def
/mBx xA xC add 2 div def
/mBy yA yC add 2 div def
/mCx xA xB add 2 div def
/mCy yA yB add 2 div def
%% Calculating the radius of the half circles along the sides of the
%% rectangled triangle
/rAB xA xB sub 2 exp yA yB sub 2 exp add sqrt 2 div def
/AB rAB 2 mul def
/rAC xA xC sub 2 exp yA yC sub 2 exp add sqrt 2 div def
/AC rAC 2 mul def
/rBC xB xC sub 2 exp yB yC sub 2 exp add sqrt 2 div def
/BC rBC 2 mul def
/DENOM BC 5 mul AB 3 mul add AC 3 mul add def
%% JFB formula
%% X = 2 AB (AB + BC) / (5 BC + 3 AB + 3 AC)
%% Y = 2 AC (AC + BC) / (5 BC + 3 AB + 3 AC)
%% R = 2 (BC + AB) (BC + AC) / (5 BC + 3 AB + 3 AC)
/x0 AB BC add AB mul 2 mul DENOM div def
/y0 AC BC add AC mul 2 mul DENOM div def
/r0 BC AB add BC AC add mul 2 mul DENOM div def
%% JFB formula for the tangent points
%% P1 = (2(a+c)c, -(a+b+c)c) / (3a + b + 2c)
%% P2 = (-(a+b+c)b, 2(a+b)b) / (3a + 2b + c)
%% P3 = ((a+b+c)(a+c), (a+b+c)(a+b))/ (3a + 2b + 2c)
/p1x BC AB add AB mul 2 mul BC 3 mul AC add AB 2 mul add div def
/p1y BC AC add AB add AB mul BC 3 mul AC add AB 2 mul add div neg def
/p2x BC AC add AB add AC mul BC 3 mul AC 2 mul add AB add div neg def
/p2y BC AC add AC mul 2 mul BC 3 mul AC 2 mul add AB add div def
/p3x BC AC add AB add BC AB add mul BC 3 mul AC 2 mul add AB 2 mul add div def
/p3y BC AC add AB add BC AC add mul BC 3 mul AC 2 mul add AB 2 mul add div def
}
%% Setting the nodes of the points of the triangle
\pstGeonode[PointSymbol=none,PosAngle={225,-45,90}](!xA yA){A}(!xB yB){B}(!xC yC){C}
%\pspolygon[linecolor=blue,linejoin=1](A)(B)(C)
%% Setting the nodes of the midpoints of the triangle sides
\pstMiddleAB[PointSymbol=none,PointName=none]{A}{B}{MAB}
\pstMiddleAB[PointSymbol=none,PointName=none]{A}{C}{MAC}
\pstMiddleAB[PointSymbol=none,PointName=none]{B}{C}{MBC}
%% Full circles along the sides of the triangle (not needed!)
%\pscircle(MAB){!rAB}
%\pscircle(MAC){!rAC}
%\pscircle(MBC){!rBC}
%% Drawing the half circles along the sides of the triangle
\pstArcOAB[linecolor=lightgray]{MAB}{A}{B}
\pstArcOAB[linecolor=lightgray]{MAC}{C}{A}
\pstArcOAB[linecolor=lightgray]{MBC}{B}{C}
%% JFB circle and tangent points
\pnode(!x0 y0){O}
\pnode(!p1x p1y){P1}
\pnode(!p2x p2y){P2}
\pnode(!p3x p3y){P3}
\pscircle[linecolor=Green](O){!r0}
\psdot[linecolor=Green](O)\uput[-90](O){\textcolor{Green}{$O$}}
\psdot[linecolor=red](P1)\uput[-90](P1){$P_1$}
\psdot[linecolor=red](P2)\uput[180](P2){$P_2$}
\psdot[linecolor=red](P3)\uput[90](P3){$P_3$}
\pspolygon[linejoin=1,linecolor=red,linewidth=0.5pt](P1)(P2)(P3)
\psline[linecolor=Green]{->}(O)(P3)
\pstMiddleAB[PointSymbol=none,PointName=none]{O}{P3}{rad}
\uput{7pt}[0](rad){\footnotesize\textcolor{Green}{$r$}}
\pspolygon[linecolor=blue,linejoin=1](A)(B)(C)
}
\end{animateinline}
\end{center}
\end{document}
dimanche 27 janvier 2019
Nouvelle version de pst-marble 1.1
La nouvelle version de pst-marble (1.1) est disponible sur le serveur du CTAN :
Les changements sont décrits dans le fichier : CHANGES-1.md
Cette version est incompatible avec la précédente car Aubrey Jaffer a simplifié l'écriture des commandes de base des actions, en a renommé certaines et ajouté de nouvelles, ceci afin de permettre à tous les éventuels utilisateurs, en particulier à ceux qui ne sont pas familiers du langange postscript, d'expérimenter sans difficulté la simulation de la création de papiers marbrés avec ce package.
Cependant les exemples créés avec la version précédente sont aisément adaptables. La superbe documentation écrite par Gilg Juergen reprend tous les exemples de la version 1.0, vous pourrez constater que les commandes sont maintenant plus simples à écrire, d'autres exemples sont inclus en supplément de la documentation.
Juergen Gilg a réalisé une animation au format SVG en utilisant le package animate d'Alexander Grahn :
Voici 3 exemples qui sont sur le CTAN et dont j'ai rajouté une commande pour inverser les couleurs originales dans deux d'entre eux.
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\psMarble[
colors={
[0.176 0.353 0.129]
[0.635 0.008 0.094]
[0.078 0.165 0.518]
[0.824 0.592 0.031]
[0.059 0.522 0.392]
[0.816 0.333 0.475]
},
actions={
0 0 600 colors 4 get drop
-200 -90 100 colors 5 get drop
-200 -200 200 colors 0 get drop
-200 200 200 colors 1 get drop
200 -200 200 colors 2 get drop
200 200 200 colors 3 get drop
% Commenting vortex gives a fine result ...
0 0 -32e3 750 vortex
250 0 [ 120 80 ] 20 -100 20 stir
0 -500 850 -30 15 colors 2 get 5 50 arc-drops
0 -500 840 -30 16 colors 1 get 5 50 arc-drops
0 -500 850 -30 15 colors 5 get 5 50 arc-drops
0 0 150 0 15 10 [105 160 99] 35 20 spiral-drops
}]
\psMarble[drawcontours,linewidth=0.2,bckg=false,
actions={
0 0 600 [0 0 0] drop
-200 -90 100 [0 0 0] drop
-200 -200 200 [0 0 0] drop
-200 200 200 [0 0 0] drop
200 -200 200 [0 0 0] drop
200 200 200 [0 0 0] drop
0 0 -32e3 750 vortex
250 0 [ 120 80 ] 20 -100 20 stir
0 -500 850 -30 15 [0 0 0] 5 50 arc-drops
0 -500 840 -30 16 [0 0 0] 5 50 arc-drops
0 -500 850 -30 15 [0 0 0] 5 50 arc-drops
0 0 150 0 15 10 [0 0 0] 35 20 spiral-drops
}]
\end{pspicture}
\end{document}
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\pstVerb{
/inverse-color {
/rgb exch def
[ rgb {1 exch sub } forall ]
} bind def }%
\begin{pspicture}(-6,-6)(6,6)
\psMarble[
viscosity=-1000,bckg=false,
colors={
[0.176 0.353 0.129] inverse-color
[0.635 0.008 0.094] inverse-color
[0.078 0.165 0.518] inverse-color
[0.824 0.592 0.031] inverse-color
[0.059 0.522 0.392] inverse-color
[0.816 0.333 0.475] inverse-color
},
actions={ 1.2 1.2 scale
0 0 35 colors 35 concentric-rings
0 350 shift
180 [ 20 50 25 tines ] 40 200 31 rake
90 {0.75 mul sin -120 mul} wiggle
180 [ 3 600 -150 tines ] 40 200 31 rake
90 {0.75 mul sin 240 mul} wiggle
180 [ 3 600 150 tines ] 40 200 31 rake
90 {0.75 mul sin -120 mul} wiggle
}]
\end{pspicture}
\end{document}
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\begin{pspicture}(-5,-7)(5,7)
\pstVerb{
/inverse-color {
/rgb exch def
[ rgb {1 exch sub } forall ]
} bind def }%
\psMarble[
colors={
[0.98 0.89 0.56] inverse-color
[0.357 0.525 0.13] inverse-color
[0.2 0.05 0.015] inverse-color
[0.07 0.41 0.255] inverse-color
[0.87 0.63 0.051] inverse-color
[0.98 0.89 0.56] inverse-color
},
actions={
0 100 50 colors 25 concentric-rings
/signe 1 def
100 100 1000 {/radius exch def
0 0 [radius] 10 60 signe mul 50 stir
/signe signe neg def
} for
90 [ 7 200 200 tines ] 40 200 31 rake
-90 [ 7 200 100 tines ] 40 200 31 rake
0 {2 mul sin 20 mul} wiggle
}](10,14)
\end{pspicture}
\end{document}
Les changements sont décrits dans le fichier : CHANGES-1.md
Cette version est incompatible avec la précédente car Aubrey Jaffer a simplifié l'écriture des commandes de base des actions, en a renommé certaines et ajouté de nouvelles, ceci afin de permettre à tous les éventuels utilisateurs, en particulier à ceux qui ne sont pas familiers du langange postscript, d'expérimenter sans difficulté la simulation de la création de papiers marbrés avec ce package.
Cependant les exemples créés avec la version précédente sont aisément adaptables. La superbe documentation écrite par Gilg Juergen reprend tous les exemples de la version 1.0, vous pourrez constater que les commandes sont maintenant plus simples à écrire, d'autres exemples sont inclus en supplément de la documentation.
Juergen Gilg a réalisé une animation au format SVG en utilisant le package animate d'Alexander Grahn :
Voici 3 exemples qui sont sur le CTAN et dont j'ai rajouté une commande pour inverser les couleurs originales dans deux d'entre eux.
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\psMarble[
colors={
[0.176 0.353 0.129]
[0.635 0.008 0.094]
[0.078 0.165 0.518]
[0.824 0.592 0.031]
[0.059 0.522 0.392]
[0.816 0.333 0.475]
},
actions={
0 0 600 colors 4 get drop
-200 -90 100 colors 5 get drop
-200 -200 200 colors 0 get drop
-200 200 200 colors 1 get drop
200 -200 200 colors 2 get drop
200 200 200 colors 3 get drop
% Commenting vortex gives a fine result ...
0 0 -32e3 750 vortex
250 0 [ 120 80 ] 20 -100 20 stir
0 -500 850 -30 15 colors 2 get 5 50 arc-drops
0 -500 840 -30 16 colors 1 get 5 50 arc-drops
0 -500 850 -30 15 colors 5 get 5 50 arc-drops
0 0 150 0 15 10 [105 160 99] 35 20 spiral-drops
}]
\psMarble[drawcontours,linewidth=0.2,bckg=false,
actions={
0 0 600 [0 0 0] drop
-200 -90 100 [0 0 0] drop
-200 -200 200 [0 0 0] drop
-200 200 200 [0 0 0] drop
200 -200 200 [0 0 0] drop
200 200 200 [0 0 0] drop
0 0 -32e3 750 vortex
250 0 [ 120 80 ] 20 -100 20 stir
0 -500 850 -30 15 [0 0 0] 5 50 arc-drops
0 -500 840 -30 16 [0 0 0] 5 50 arc-drops
0 -500 850 -30 15 [0 0 0] 5 50 arc-drops
0 0 150 0 15 10 [0 0 0] 35 20 spiral-drops
}]
\end{pspicture}
\end{document}
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\pstVerb{
/inverse-color {
/rgb exch def
[ rgb {1 exch sub } forall ]
} bind def }%
\begin{pspicture}(-6,-6)(6,6)
\psMarble[
viscosity=-1000,bckg=false,
colors={
[0.176 0.353 0.129] inverse-color
[0.635 0.008 0.094] inverse-color
[0.078 0.165 0.518] inverse-color
[0.824 0.592 0.031] inverse-color
[0.059 0.522 0.392] inverse-color
[0.816 0.333 0.475] inverse-color
},
actions={ 1.2 1.2 scale
0 0 35 colors 35 concentric-rings
0 350 shift
180 [ 20 50 25 tines ] 40 200 31 rake
90 {0.75 mul sin -120 mul} wiggle
180 [ 3 600 -150 tines ] 40 200 31 rake
90 {0.75 mul sin 240 mul} wiggle
180 [ 3 600 150 tines ] 40 200 31 rake
90 {0.75 mul sin -120 mul} wiggle
}]
\end{pspicture}
\end{document}
\documentclass[pstricks]{standalone}
\usepackage{pst-marble}
\begin{document}
\begin{pspicture}(-5,-7)(5,7)
\pstVerb{
/inverse-color {
/rgb exch def
[ rgb {1 exch sub } forall ]
} bind def }%
\psMarble[
colors={
[0.98 0.89 0.56] inverse-color
[0.357 0.525 0.13] inverse-color
[0.2 0.05 0.015] inverse-color
[0.07 0.41 0.255] inverse-color
[0.87 0.63 0.051] inverse-color
[0.98 0.89 0.56] inverse-color
},
actions={
0 100 50 colors 25 concentric-rings
/signe 1 def
100 100 1000 {/radius exch def
0 0 [radius] 10 60 signe mul 50 stir
/signe signe neg def
} for
90 [ 7 200 200 tines ] 40 200 31 rake
-90 [ 7 200 100 tines ] 40 200 31 rake
0 {2 mul sin 20 mul} wiggle
}](10,14)
\end{pspicture}
\end{document}
lundi 21 janvier 2019
Horloge numérique par Thomas Soell
Faisant suite au sujet ouvert par Juergen Gilg sur :
https://tex.stackexchange.com/questions/470303/clever-setup-of-multiframe-with-diverse-conditions-within-animate-package
Thomas Söll a réalisé une horloge, chronomètre avec des afficheurs à diode 7 segments de toute beauté. On peut choisir pour affichage de départ le jour de la semaine, l'heure, les minutes et les secondes. La couleur et l'inclinaison des chiffres sont paramétrables ainsi que la couleur des digits éteints.
Les animations sont réalisées sur le fichier pdf grâce au package animate d'Alexander Grahn. Juergen Gilg me signale qu'il doit être possible de créer des animations interactives au format SVG sur le navigateur Chrome.
Les fichiers de Thomas sont dans ce répertoire :
Voici quelques images du travail de Thomas extraites de son document et une animation au format Gif.
https://tex.stackexchange.com/questions/470303/clever-setup-of-multiframe-with-diverse-conditions-within-animate-package
Thomas Söll a réalisé une horloge, chronomètre avec des afficheurs à diode 7 segments de toute beauté. On peut choisir pour affichage de départ le jour de la semaine, l'heure, les minutes et les secondes. La couleur et l'inclinaison des chiffres sont paramétrables ainsi que la couleur des digits éteints.
Les animations sont réalisées sur le fichier pdf grâce au package animate d'Alexander Grahn. Juergen Gilg me signale qu'il doit être possible de créer des animations interactives au format SVG sur le navigateur Chrome.
Les fichiers de Thomas sont dans ce répertoire :
Voici quelques images du travail de Thomas extraites de son document et une animation au format Gif.
dimanche 20 janvier 2019
Afficheur alphanumérique à diodes par Juergen Gilg
Sur le site :
https://tex.stackexchange.com/questions/470303/clever-setup-of-multiframe-with-diverse-conditions-within-animate-package
Juergen a initié un projet sur une animation d'un afficheur numérique 7 segments. De nombreux contributeurs ont répondu et enrichi ce sujet.
Il propose ici un afficheur alphanumérique avec des LED à tête ronde, voici 2 exemples :
Les fichiers et les animations (réalisées avec le package animate d'Alexander Grahn) incluses dans les pdf sont dans le répertoire :
Le fichier zippé contient tous les fichiers.
https://tex.stackexchange.com/questions/470303/clever-setup-of-multiframe-with-diverse-conditions-within-animate-package
Juergen a initié un projet sur une animation d'un afficheur numérique 7 segments. De nombreux contributeurs ont répondu et enrichi ce sujet.
Il propose ici un afficheur alphanumérique avec des LED à tête ronde, voici 2 exemples :
Les fichiers et les animations (réalisées avec le package animate d'Alexander Grahn) incluses dans les pdf sont dans le répertoire :
Le fichier zippé contient tous les fichiers.
Inscription à :
Articles (Atom)



















