mercredi 14 mars 2018

Disques à secteurs colorés

La commande \psDics[options] du package ‘pst-discs’ permet de dessiner des disques avec des secteurs colorés avec 3 couleurs.
Elle a été créée pour illustrer les synthèses additive et soustractive des couleurs en superposant 2, 3, 4 disques ou bien en les superposant sur des trames de lignes de couleurs. Cette commande utilise l’option ‘blendmode’ dont vous trouverez quelques explications et exemples sur les pages :
http://pstricks.blogspot.fr/2015/11/le-mode-difference-de-blendmode-utilise.html
http://pstricks.blogspot.fr/2012/09/loption-blendmode-de-pstricks-pour.html
http://pstricks.blogspot.fr/2017/07/parasols-et-ombrelles-avec-pstricks.html
Ces pages contiennent d’autres liens vers d’autres exemples. Ou bien sur le blog, faire une recherche avec le mot blendmode.
Tous les fichiers, package documentation et exemples sont dans le répertoire :
le fichier zippé les contient tous.
Dans la documentation les animations colorées on t été réalisées avec le package animate d'Alexander Grahn. Ci-dessous leurs conversions en Gif animé.













vendredi 2 mars 2018

Moiré : une réalisation de Gilg Juergen

D'après une carte postale ``turn the top part'', achetée à la boutique du centre Beaubourg à Paris, exploitant le phénomène de moiré,  redessinée avec PSTricks, dont le code est donné après le Gif.
\documentclass{article}
\usepackage{pstricks-add,animate}
\usepackage[a4paper]{geometry}
\pagestyle{empty}
\begin{document}
\def\myMoire{%
\psset{dimen=inner,linewidth=0pt}
\def\carre{%
\pnodes{AL}(0,0)(-1.5,1.5)(-1.5,1.2)(-1.5,0.9)(-1.5,0.7)(-1.5,0.4)(-1.5,0.2)(-1.5,0)%
(-1.5,-0.2)(-1.5,-0.4)(-1.5,-0.6)(-1.5,-0.75)(-1.5,-0.9)(-1.5,-1.05)(-1.5,-1.15)%
(-1.5,-1.25)(-1.5,-1.3)(-1.5,-1.4)(-1.5,-1.45)
\pnodes{AR}(0,0)(1.5,-1.5)(1.5,-1.2)(1.5,-0.9)(1.5,-0.7)(1.5,-0.4)(1.5,-0.2)(1.5,0)%
(1.5,0.2)(1.5,0.4)(1.5,0.6)(1.5,0.75)(1.5,0.9)(1.5,1.05)(1.5,1.15)(1.5,1.25)%
(1.5,1.3)(1.5,1.4)(1.5,1.45)
\multido{\iA=1+2,\iB=2+2}{9}{\pspolygon*(AL\iA)(AR\iA)(AR\iB)(AL\iB)}%
\pnodes{BL}(0,0)(-1.2,1.5)(-0.9,1.5)(-0.7,1.5)(-0.4,1.5)(-0.2,1.5)(0.0,1.5)(0.2,1.5)%
(0.4,1.5)(0.6,1.5)(0.75,1.5)(0.9,1.5)(1.05,1.5)(1.15,1.5)(1.25,1.5)(1.3,1.5)%
(1.4,1.5)(1.45,1.5)(1.5,1.5)
\pnodes{BR}(0,0)(1.2,-1.5)(0.9,-1.5)(0.7,-1.5)(0.4,-1.5)(0.2,-1.5)(0,-1.5)(-0.2,-1.5)%
(-0.4,-1.5)(-0.6,-1.5)(-0.75,-1.5)(-0.9,-1.5)(-1.05,-1.5)(-1.15,-1.5)(-1.25,-1.5)%
(-1.3,-1.5)(-1.4,-1.5)(-1.45,-1.5)(-1.5,-1.5)
\multido{\iA=1+2,\iB=2+2}{9}{\pspolygon*(BL\iA)(BR\iA)(BR\iB)(BL\iB)}%
}%
\def\half{%
\rput(0,0){\carre}
\rput(-3,0){\psscalebox{-1 1}{\carre}}
}
\def\pattern{%
\rput(0,0){\half}
\rput(0,-3){\psscalebox{1 -1}{\half}}
}
\multido{\iA=0+6}{2}{%
  \multido{\iB=0+-6}{3}{%
    \rput(\iA,\iB){\pattern}
}}
}

\psset{unit=0.75}
\begin{animateinline}[controls,loop,
    begin={\begin{pspicture}(-7,-19)(10,5)},
    end={\end{pspicture}}]{10}% 10 frames/s (velocity of the animation)
\multiframe{11}{i=0+2}{% number of frames
\rput(0,0){\myMoire}
\psrotate(1.5,-7){\i}{\myMoire}
}
\multiframe{21}{i=20+-2}{%
\rput(0,0){\myMoire}
\psrotate(1.5,-7){\i}{\myMoire}
}
\multiframe{10}{i=-20+2}{%
\rput(0,0){\myMoire}
\psrotate(1.5,-7){\i}{\myMoire}
}
\end{animateinline}
\end{document}





mercredi 28 février 2018

Anneaux de Fresnel - moirés en couleurs

Les figures de moirés font déjà l’objet d’un package “pst-moire” :
ou
Les moirés avec les anneaux de Fresnel sont illustrés avec le package et dans ces animations :
Mais ce sont des illustrations monochrome, avec des anneaux d’une couleur et les effets de moirés sont de la même couleur. Ici on peut choisir la couleur des anneaux et celle des intersections des anneaux indépendamment avec la commande \psFresnelRingMoires[options]. Voir les fichiers du dossier :

Le fichier zippé les contient tous.


mardi 27 février 2018

Anneaux de Fresnel : moirés

Les figures de moiré obtenues par superposition de 2 ensembles d'anneaux de Fresnel ont déjà été représentées et étudiées lors de l'élaboration du package ``pst-moire'' (M. Luque, J. Gilg, J-M. Sarlat ) :
http://melusine.eu.org/syracuse/G/pstricks/pst-moire/
Ces 2 animations ne sont donc pas des nouveautés, mais simplement un prétexte pour rappeler l'existence du package dont l'écriture nous avait donné à tous les trois, beaucoup de joie.
On trouve aussi quelques pages consacrées à ce package sur ce blog :
http://pstricks.blogspot.fr/2011/11/les-moires-moire-patterns.html
http://pstricks.blogspot.fr/2011/11/figures-de-moire-en-forme-de-trefle-4.html
http://pstricks.blogspot.fr/2011/11/creer-un-moire-tournant-ou-comment-se.html
En suivant le lien suivant, vous trouverez une animation avec la souris.
https://sites.google.com/view/manuelluque/anneaux-de-fresnel-moir%C3%A9s

Le code de ces 2 animations :

\documentclass[pstricks]{standalone}
\usepackage{pst-moire}
\begin{document}
\multido{\r=0+0.05}{100}{%
\begin{pspicture}(-5,-5)(5,5)
\psmoire[Rmax=12,linecolor={[rgb]{0 0.25 0}}](-\r,0)
\psmoire[Rmax=12,linecolor={[rgb]{0 0.25 0}}](\r,0)
\psdots[linecolor={[rgb]{0.5 0 0}}](-\r,0)(\r,0)
\end{pspicture}}
\end{document}

\documentclass[pstricks]{standalone}
\usepackage{pst-moire}
\begin{document}
\psset{dimen=inner}
\multido{\i=0+2}{180}{%
\begin{pspicture}(-5,-5)(5,5)
\psmoire[Rmax=20,scale=0.75,linecolor={[rgb]{0 0.25 0}}](0,0)
\psmoire[Rmax=20,scale=0.75,linecolor={[rgb]{0 0.25 0}}](!0.4 \i\space cos mul 0.4 \i\space sin mul)
\psdot[dotstyle=+](0,0)%
\pscircle*[linecolor={[rgb]{0.5 0 0}}](!0.4 \i\space cos mul 0.4 \i\space sin mul){0.1}%
\pscircle[linestyle=dotted]{0.4}%
\end{pspicture}}
\end{document}

Avec 4 groupes d'anneaux, on obtient un moiré en damier.

Le listing :

\documentclass[pstricks]{standalone}
\usepackage{pst-moire}
\begin{document}
\multido{\r=0+0.02}{30}{
\begin{pspicture}(-8,-8)(8,8)
\psmoire[Rmax=20](-\r,0)
\psmoire[Rmax=20](\r,0)
\psmoire[Rmax=20](0,\r)
\psmoire[Rmax=20](0,-\r)
\psdots[linecolor=red](-\r,0)(\r,0)(0,\r)(0,-\r)
\end{pspicture}}
\end{document}


jeudi 22 février 2018

Projection d'un cube sur un plan

Il y a dans le numéro 180 de la revue “tangente” (janvier-février 2018), dont le thème est “Espionnage : des maths, partout !”, dans la rubrique “problèmes” un exercice intitulé :
Projection d’un cube”, dont voici l’énoncé :
«Soit un cube d’arête une unité et p sa projection orthogonale sur un plan. Quelle est la valeur maximale de p(C) ? »
La référence indique qu’il s’agit d’un exercice du Concours Général 1997. Jean-Michel Sarlat en donne une solution (très élégante) :
C’est l’illustration de la solution de ce problème que je propose ici en utilisant le package ‘pst-solides3d’ et une macro additionnelle : \psRotIIID

 D’abord,voici le dessin dans le cas où l’aire de la projection est maximale.
 Vue de dessus :
Vue de face :


Et un animation :

Les fichiers sont dans le dossier :
Le fichier zippé les contient tous ainsi que la documentation de la macro \psRotIIID et une animation utilisant la macro.


samedi 17 février 2018

Quatre façons de colorier un tore avec pst-solides3d





Les codes sont donnés ci-dessous :

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\multido{\i=0+10}{36}{
\begin{pspicture}(-5,-5)(5,5)
\psset[pst-solides3d]{viewpoint=100 60 20 rtp2xyz,solidmemory,
          Decran=100,lightsrc=viewpoint}
\pstVerb{/n1 18 def /n2 36 def}%
\psSolid[object=tore,r1=2.5,r0=1,name=T1,action=none,
               linewidth=0.001,incolor=yellow!20,
              hue=0 1,
              ngrid=n1 n2]%
\psSolid[object=cylindre,h=8,ngrid=8 6,r=0.04,
               name=C1,action=none,
               fillcolor=yellow,linecolor=yellow](0,0,-4)
\psSolid[object=cone,h=0.5,ngrid=8 12,r=0.15,
               name=C2,action=none,
               fillcolor=yellow,linecolor=yellow](0,0,4)
\psSolid[object=fusion,base=T1 C1 C2,
                linewidth=0.001,RotZ=\i,RotX=-20,RotSequence=zxy]
\end{pspicture}}
\end{document}

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\multido{\i=0+10}{36}{
\begin{pspicture}(-5,-5)(5,5)
\psset[pst-solides3d]{viewpoint=100 60 30 rtp2xyz,solidmemory,
           Decran=100,lightsrc=viewpoint}
\pstVerb{/n1 18 def /n2 36 def}%
\psSolid[object=tore,r1=2.5,r0=1,name=T1,action=none,
               linewidth=0.001,incolor=yellow!20,
               fcol=0 1 n1 1 sub {/i exch def /j 0 def
                      n2 {i j add [i n1 div] (1 1 sethsbcolor) astr2str /j j n1 add def} repeat} for,
                ngrid=n1 n2]%
\psSolid[object=cylindre,h=8,ngrid=8 6,r=0.025,
               name=C1,action=none,fillcolor=red](0,0,-4)
\psSolid[object=cone,h=0.3,ngrid=8 12,r=0.1,
               name=C2,action=none,fillcolor=red](0,0,4)
\psSolid[object=fusion,base=T1 C1 C2,linewidth=0.001,RotX=\i]
\end{pspicture}}
\end{document}

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\multido{\i=0+10}{36}{
\begin{pspicture}(-5,-5)(5,5)
\psset[pst-solides3d]{viewpoint=100 60 30 rtp2xyz,solidmemory,
       Decran=100,lightsrc=viewpoint}
\pstVerb{/n1 18 def /n2 36 def}%
\psSolid[object=tore,r1=2.5,r0=1,name=T1,action=none,
         linewidth=0.001,incolor=yellow!20,
         tablez=-1 0.1 1 {} for,
         zcolor=(jaune) (orange),
         ngrid=n1 n2]%
\psSolid[object=cylindre,h=8,ngrid=8 6,r=0.025,name=C1,
         action=none,tablez=-4 0.1 4 {} for,
         zcolor=(jaune) (orange)](0,0,-4)
\psSolid[object=cone,h=0.3,ngrid=8 12,r=0.1,name=C2,
         action=none,fillcolor=red](0,0,4)
\psSolid[object=fusion,base=T1 C1 C2,linewidth=0.001,RotY=\i]
\end{pspicture}}
\end{document}

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\multido{\i=0+10}{36}{
\begin{pspicture}(-5,-5)(5,5)
\psset[pst-solides3d]{viewpoint=100 0 0 rtp2xyz,solidmemory,
       Decran=100,lightsrc=viewpoint}
\pstVerb{/n1 24 def /n2 42 def}%
\psSolid[object=tore,r1=2.5,r0=1,
         action=none,name=torusrainbow,
         RotY=\i,
         ngrid=n1 n2]%
\psSolid[object=load,load=torusrainbow,
         linewidth=0.001,
         tablez=-3.5 0.1 3.5 {} for,
         zcolor=0 1]
\psSolid[object=cylindre,h=7,r=0.1,
         ngrid=20 4,grid,
         tablez=-3.5 0.1 3.5 {} for,
         zcolor=0 1](0,-4.5,-3.5)
\end{pspicture}}
\end{document}

Si le sujet vous intéresse, voici quelques liens de ce blog qui traitent de différentes façons de décorer un tore (ou bien, dans le champ de recherches tapez !tore) :

http://pstricks.blogspot.fr/2015/02/tore-decoupe-en-rubans-de-villarceau.html
http://pstricks.blogspot.fr/2015/02/le-numero-396-janvier-fevrier-2015-de.html
http://pstricks.blogspot.fr/2015/02/tore-decoupe-en-rubans-de-villarceau_13.html
http://pstricks.blogspot.fr/2015/02/tore-decoupe-en-cercles-de-villarceau_8.html
http://pstricks.blogspot.fr/2015/04/solides-avec-decor-pois-de-couleur_9.html
http://pstricks.blogspot.fr/2015/02/une-autre-image-dun-tore.html
http://pstricks.blogspot.fr/2015/02/cercles-de-villarceau-sur-un-tore-3.html
http://pstricks.blogspot.fr/2015/02/tore-decoupe-en-cercles-de-villarceau.html

http://pstricks.blogspot.fr/2017/08/texte-et-image-sur-une-surface.html

http://pstricks.blogspot.fr/2017/02/generalisation-des-tubes-avec-pst.html
http://pstricks.blogspot.fr/2016/08/les-cyclides-de-dupin-avec-pst_11.html
http://pstricks.blogspot.fr/2016/06/enroulements-autour-dun-tore-1-une.html
http://pstricks.blogspot.fr/2015/03/maillage-dun-solide-comme-un-mur-de.html
http://pstricks.blogspot.fr/2015/02/tore-evide-avec-pst-solides3d.html
http://pstricks.blogspot.fr/2014/08/la-marche-dun-ressort-simulation.html

dimanche 11 février 2018

Représentation d'un éventail par une surface paramétrée (pst-solides3d)

C’est la version de “L’antiprisme en forme d’éventail" :
à l'aide d'une surface paramétrée.
Les fichiers sont dans le dossier :
Le fichier zippé les contient tous.
Quelques images extraites de la documentation :
Dans les exemples précédant le recouvrement de la surface par une nappe vichy, le principe de la coloration de la surface était que chaque rayon est d'une couleur différente du précédent
en suivant le principe du système de couleurs HSB. On peut faire différemment, en suivant toujours le système HSB, mais en changeant de couleur à partir du centre vers l'extérieur(ou inversement). Cela donne :
Code :

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}(-7,-6)(7,4)
\psset[pst-solides3d]{viewpoint=100 60 30 rtp2xyz,
       Decran=100,lightsrc=viewpoint}
\psSolid[object=grille,base=-5 5 -5 5,linecolor=red,linewidth=0.5\pslinewidth,ngrid=12](0,0,-2)
\pstVerb{/n1 100 def /n2 20 def}%
\defFunction[algebraic]{eventail}(u,v)
{5*v*sin(u)}
{5*v*cos(u)}
{1*sin(5*u)}
\psSolid[object=surfaceparametree,
    function=eventail,linewidth=0.001,incolor=yellow!20,
    fcol=0 1 n2 1 sub {/i exch def /j 0 def n1 {i j add [1 i n2 div sub]  (1 1 sethsbcolor) astr2str /j j n2 add def} repeat} for,
    base=0 2 pi mul 0 1,grid,opacity=0.8,
    ngrid=n1 n2]%
\psSolid[object=vecteur,
         action=draw,
         linecolor=red,
         args=0 0 3](0,0,1)
\psPoint(0,0,4){Z}\uput[u](Z){\red$z$}
\end{pspicture}
\end{document}