% 20 juillet 2003 \documentclass[12pt]{article} \usepackage{pstcol,pst-key,pst-slpe,pst-3d} \usepackage[margin=2cm]{geometry} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} % Le générateur de nombres aléatoires est de % Donald Arseneau \input random % \usepackage[tiling]{pst-fill} \def\CyanG{0.4} \def\MagentaG{0} \def\YellowG{0.2} \def\KG{0} \def\CyanV{0} \def\MagentaV{0.3} \def\YellowV{0} \def\KV{0} \def\CyanL{0} \def\MagentaL{0.2} \def\YellowL{0.2} \def\KL{0} \def\CyanR{0} \def\MagentaR{0} \def\YellowR{0.3} \def\KR{0} % \def\Motif{{% \psset{unit=0.5,fillstyle=solid}% \pspicture(-2,-2)(2,2)% \pspolygon[fillcolor=caseG](-2,1.5)(-1.5,2)(-2,2.5)(-2.5,2)% \pspolygon[fillcolor=caseG](2,1.5)(2.5,2)(2,2.5)(1.5,2) \pspolygon[fillcolor=caseG](-1.5,1)(-1,1.5)(-0.5,1)(-1,0.5) \pspolygon[fillcolor=caseG](-0.5,0)(0,0.5)(0.5,0)(0,-0.5) \pspolygon[fillcolor=caseG](0.5,-1)(1,-0.5)(1.5,-1)(1,-1.5) \pspolygon[fillcolor=caseG](-2,-1.5)(-1.5,-2)(-2,-2.5)(-2.5,-2) \pspolygon[fillcolor=caseG](2,-1.5)(2.5,-2)(2,-2.5)(1.5,-2) \pspolygon[fillcolor=caseV](-0.5,2)(0,1.5)(0.5,2)(0,2.5) \pspolygon[fillcolor=caseV](0.5,1)(1,1.5)(1.5,1)(1,0.5) \pspolygon[fillcolor=caseV](-2,0.5)(-1.5,0)(-2,-0.5)(-2.5,0) \pspolygon[fillcolor=caseV](2,0.5)(1.5,0)(2,-0.5)(2.5,0) \pspolygon[fillcolor=caseV](-1.5,-1)(-1,-0.5)(-0.5,-1)(-1,-1.5) \pspolygon[fillcolor=caseV](-0.5,-2)(0,-1.5)(0.5,-2)(0,-2.5) \pspolygon[fillcolor=caseR](-2,1.5)(-2,1)(-1.5,1)(-1,1.5)(-1,2)(-1.5,2) \pspolygon[fillcolor=caseR](-1,0.5)(-1,0)(-0.5,0)(0,0.5)(0,1)(-0.5,1) \pspolygon[fillcolor=caseR](0,-0.5)(0,-1)(0.5,-1)(1,-0.5)(1,0)(0.5,0) \pspolygon[fillcolor=caseR](1,-1.5)(1,-2)(1.5,-2)(2,-1.5)(2,-1)(1.5,-1) \pspolygon[fillcolor=caseR](-2,-0.5)(-2,-1)(-1.5,-1)(-1,-0.5)(-1,0)(-1.5,0) \pspolygon[fillcolor=caseR](-1,-1.5)(-1,-2)(-0.5,-2)(0,-1.5)(0,-1)(-0.5,-1) \pspolygon[fillcolor=caseR](0,1)(0,1.5)(0.5,2)(1,2)(1,1.5)(0.5,1) \pspolygon[fillcolor=caseR](1,0)(1,0.5)(1.5,1)(2,1)(2,0.5)(1.5,0) \pspolygon[fillcolor=caseL](-2,0.5)(-2,1)(-1.5,1)(-1,0.5)(-1,0)(-1.5,0) \pspolygon[fillcolor=caseL](-2,-1.5)(-2,-1)(-1.5,-1)(-1,-1.5)(-1,-2)(-1.5,-2) \pspolygon[fillcolor=caseL](0,0.5)(0,1)(0.5,1)(1,0.5)(1,0)(0.5,0) \pspolygon[fillcolor=caseL](0,-1.5)(0,-1)(0.5,-1)(1,-1.5)(1,-2)(0.5,-2) \pspolygon[fillcolor=caseL](-1,1.5)(-1,2)(-0.5,2)(0,1.5)(0,1)(-0.5,1) \pspolygon[fillcolor=caseL](-1,-0.5)(-1,0)(-0.5,0)(0,-0.5)(0,-1)(-0.5,-1) \pspolygon[fillcolor=caseL](1,1.5)(1,2)(1.5,2)(2,1.5)(2,1)(1.5,1) \pspolygon[fillcolor=caseL](1,-0.5)(1,0)(1.5,0)(2,-0.5)(2,-1)(1.5,-1) \endpspicture}}% \SpecialCoor \makeatletter \define@key{psset}{xR}{\edef\psk@ArthurRGB@xR{#1}} % abscisse ArthurRGB rouge \define@key{psset}{yR}{\edef\psk@ArthurRGB@yR{#1}} % ordonnée ArthurRGB rouge \define@key{psset}{xG}{\edef\psk@ArthurRGB@xG{#1}} % abscisse ArthurRGB vert \define@key{psset}{yG}{\edef\psk@ArthurRGB@yG{#1}} % ordonnée ArthurRGB vert \define@key{psset}{xB}{\edef\psk@ArthurRGB@xB{#1}} % abscisse ArthurRGB bleu \define@key{psset}{yB}{\edef\psk@ArthurRGB@yB{#1}} % ordonnée ArthurRGB bleu \define@key{psset}{xC}{\edef\psk@ArthurCMY@xC{#1}} % abscisse ArthurCMY cyan \define@key{psset}{yC}{\edef\psk@ArthurCMY@yC{#1}} % ordonnée ArthurCMY cyan \define@key{psset}{xM}{\edef\psk@ArthurCMY@xM{#1}} % abscisse ArthurCMY magenta \define@key{psset}{yM}{\edef\psk@ArthurCMY@yM{#1}} % ordonnée ArthurCMY magenta \define@key{psset}{xY}{\edef\psk@ArthurCMY@xY{#1}} % abscisse ArthurCMY jaune \define@key{psset}{yY}{\edef\psk@ArthurCMY@yY{#1}} % ordonnée ArthurCMY jaune \define@key{psset}{cR}{\edef\psk@ArthurRGB@cR{#1}} % composante rouge \define@key{psset}{cG}{\edef\psk@ArthurRGB@cG{#1}} % composante verte \define@key{psset}{cB}{\edef\psk@ArthurRGB@cB{#1}} % composante bleue \define@key{psset}{cC}{\edef\psk@ArthurCMY@cC{#1}} % composante cyan \define@key{psset}{cM}{\edef\psk@ArthurCMY@cM{#1}} % composante magenta \define@key{psset}{cY}{\edef\psk@ArthurCMY@cY{#1}} % composante yellow \newif\ifPst@GhostFamily% \define@key{psset}{GhostFamily}[true]{\@nameuse{Pst@GhostFamily#1}}% \newif\ifPst@Contour% \define@key{psset}{Contour}[true]{\@nameuse{Pst@Contour#1}}% % Les valeurs par défaut \setkeys{psset}{xR=0,yR=0,xG=0,yG=0,xB=0,yB=0,cR=1,cG=1,cB=1,xC=0,yC=0,xM=0,yM=0,xY=0,yY=0,% cC=1,cM=1,cY=1,GhostFamily=true,Contour=false} % formes du spectre % famille 1 \def\arthurB{% \psccurve(-3,-5)(-3,-5)(-1.5,-2.5)(-1.75,-1.5)(-2.5,0)(-0.75,-0.5)(-0.5,0.5)(-0.5,1) (-0.75,1.5)(0,1)(0.5,0.5)(0.75,-0.5)(2.5,-1)(1.2,-1.8)(0,-3.5)(-1.5,-4.5)} \def\arthurR{% \psccurve(3,-5)(3,-5)(0,-4)(-1.5,-2.5)(-1.75,-1.5)(-2.5,0)(-0.75,-0.5)(-0.5,0.5)(0,1) (0.75,1.5)(0.5,1)(0.5,0.5)(0.75,-0.5)(2.5,-1)(1.2,-1.8)} \def\arthurG{% \psccurve(0,-5)(0,-5)(-1,-3.5)(-1.25,-2)(-1.5,-1.5)(-2.5,0)(-0.75,-0.5)(-0.5,0.5)(-0.2,1) (0,1.5)(0.2,1)(0.5,0.5)(0.75,-0.5)(2.5,-1)(1.2,-1.8)} \def\Yeux{% \psellipse[fillstyle=solid,fillcolor=white,linestyle=solid](-0.2,0)(0.15,0.2) \psellipse[fillstyle=solid,fillcolor=white,linestyle=solid](0.2,0)(0.15,0.2) \pscircle*[linecolor=black](0.2,-0.1){0.075}\pscircle*[linecolor=black](-0.2,-0.1){0.075}} % famille Arthur \def\arthurFils{% \psccurve(0.5,2.2)(0.15,1.8)(0.15,1.4)(0.15,1.4)(-0.2,1.25)(-0.3,1)(-0.3,0.8)(-0.1,0.5)(-0.1,0.5) (-0.6,1)(-0.55,1.1)(-0.6,1.25)(-0.57,1.4)(-0.75,1.4)(-0.75,1.15)(-1.2,1.4)(-0.9,1.05)%(-0.9,1.05) (-1.3,1.2)(-0.95,0.95)%(-0.95,0.95) (-1.35,1)(-1,0.85)%(-1,0.85) (-1.3,0.8)(-0.8,0.75) (-0.3,0.35)(-0.3,0.35)(-0.5,0)(-0.6,-0.6)(-0.25,-1)%(-0.25,-1) (-0.6,-1.7)(-0.4,-2) (0,-1)(0,-1)(0.6,-0.6)(0.5,0.25)(0.5,0.25)(1.1,0.8) (1.17,0.85)(1.4,0.81)(1.7,0.8)(1.5,0.9)%(1.5,0.9) (1.8,1)(1.5,1.05)%(1.45,1.05) (1.8,1.3)(1.4,1.2)%(1.4,1.2) (1.7,1.5)(1.3,1.3)(1.4,1.6)(1.2,1.6)(1.25,1.5)(1.1,1.3)(1,1.05) (0.4,0.5)(0.4,0.5)(0.65,0.9)(0.6,1.2)(0.4,1.35)(0.4,1.35)} % les yeux \def\YeuxFils{% \rput{-15}(0,1){\psellipse*[linecolor=black](0,0)(0.085,0.15)} \rput{-15}(0.3,1){\psellipse*[linecolor=black](0,0)(0.085,0.15)}} \def\arthurPapa{% \psccurve(-0.5,2.7)(-0.7,2.25)(-0.6,2)(-0.4,2)(-0.4,2) (-0.5,1.5)(-0.45,0.8)(-0.55,0.75)(-1.2,1.45) (-1.2,1.8)(-1.3,2.1)(-1.45,1.7) (-1.8,1.95)(-1.55,1.55)(-1.55,1.55) (-1.95,1.65)(-1.6,1.4)(-1.6,1.4)(-1.9,1.3)(-1.4,1.2)(-1.1,0.9) (-0.8,0.5)(-0.9,0)(-0.97,-1)(-0.5,-1.7)(0.1,-2.1)(0.2,-3) (1,-2.5)(1.2,-2.4)(0.5,-2.5)(0.5,-2.5) (0.6,-1.9)(0.6,-1.9) (0.9,-1)(0.5,0.25)(0.5,0.25) (1,0.75)(1.2,1)(1.6,1.1)(1.8,1.25) (1.5,1.25)(1.5,1.25) (1.8,1.5)(1.5,1.4)(1.5,1.4) (1.6,1.7)(1.25,1.5)(1.1,1.8)(1,1.5)(1,1.1) (0.2,0.9)(0.2,1.4)(0.05,2)(-0.35,2.4)(-0.45,2.3)} \def\YeuxPapa{% \psellipse[fillstyle=solid,fillcolor=black](-0.3,1.4)(0.1,0.15) \psellipse[fillstyle=solid,fillcolor=black](0,1.4)(0.1,0.15) \psline[linestyle=solid,linecolor=black](-0.4,1.6)(-0.2,1.5) \psline[linestyle=solid,linecolor=black](0.1,1.6)(-0.1,1.5) \psellipse[fillstyle=solid,fillcolor=black](-0.1,0.7)(0.1,0.2)} \def\arthurMaman{% \psccurve(-0.1,3)(-0.3,2.1)(-0.3,2.1)%(-0.4,2)(-0.4,2) (-0.5,1.5)(-0.45,0.8)(-0.55,0.75)(-1.2,1.45) (-1.2,1.8)(-1.3,2.1)(-1.45,1.7) (-1.8,1.95)(-1.55,1.55)(-1.55,1.55) (-1.95,1.65)(-1.6,1.4)(-1.6,1.4)(-1.9,1.3)(-1.4,1.2)(-1.1,0.9) (-0.8,0.5)(-0.6,-0.2)(-0.97,-1)(-0.5,-1.5)(0,-2) (-0.5,-2.3)(-1.2,-2.4)(-1.2,-2.4)(-1,-2.5)(-1,-2.5) (-1.2,-2.7)(-1.2,-2.7) (-1,-2.8)(-1,-2.8) (-1.1,-2.9)(-1.1,-2.9) (-1,-2.95)(-1,-2.95) (0,-2.5)(0.6,-1.9) (0.2,-0.2)(0.5,0.25)(0.5,0.25) (1,0.75)(1.2,1)(1.6,1.1)(1.8,1.25) (1.5,1.25)(1.5,1.25) (1.8,1.5)(1.5,1.4)(1.5,1.4) (1.6,1.7)(1.25,1.5)(1.1,1.8)(1,1.5)(1,1.1) (0.2,0.9)(0.2,1.4)(0.05,2)(-0.1,2.3)} \def\YeuxMaman{% \rput{10}(-0.3,1.4){\psellipse[fillstyle=solid,fillcolor=black](0,0)(0.1,0.15)} \rput{-10}(-0,1.4){\psellipse[fillstyle=solid,fillcolor=black](0,0)(0.1,0.15)} \psline[linestyle=solid,linecolor=black](-0.4,1.7)(-0.2,1.55) \psline[linestyle=solid,linecolor=black](0.1,1.7)(-0.05,1.55) \psellipse[fillstyle=solid,fillcolor=black](-0.1,0.9)(0.08,0.15)} % la commande pour placer le spectre \def\ArthurRGB{\@ifnextchar[{\pst@ArthurRGB}{\pst@ArthurRGB[]}} \def\pst@ArthurRGB[#1]{{% \pst@killglue \setkeys{psset}{#1}% \definecolor{Red}{rgb}{\psk@ArthurRGB@cR,0,0} \definecolor{Green}{rgb}{0,\psk@ArthurRGB@cG,0} \definecolor{Blue}{rgb}{0,0,\psk@ArthurRGB@cB} \definecolor{Yellow}{rgb}{\psk@ArthurRGB@cR,\psk@ArthurRGB@cG,0} \definecolor{Magenta}{rgb}{\psk@ArthurRGB@cR,0,\psk@ArthurRGB@cB} \definecolor{Cyan}{rgb}{0,\psk@ArthurRGB@cG,\psk@ArthurRGB@cB} \definecolor{White}{rgb}{\psk@ArthurRGB@cR,\psk@ArthurRGB@cG,\psk@ArthurRGB@cB} \rput(\psk@ArthurRGB@xR,\psk@ArthurRGB@yR){\psset{fillstyle=solid,fillcolor=Red}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi} \rput(\psk@ArthurRGB@xG,\psk@ArthurRGB@yG){\psset{fillstyle=solid,fillcolor=Green}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi} \rput(\psk@ArthurRGB@xB,\psk@ArthurRGB@yB){\psset{fillstyle=solid,fillcolor=Blue}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \psclip{% \rput(\psk@ArthurRGB@xR,\psk@ArthurRGB@yR){\psset{linestyle=none}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \rput(\psk@ArthurRGB@xG,\psk@ArthurRGB@yG){\psset{fillstyle=solid,fillcolor=Yellow}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi} \endpsclip% \psclip{% \rput(\psk@ArthurRGB@xR,\psk@ArthurRGB@yR){\psset{linestyle=none}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \rput(\psk@ArthurRGB@xB,\psk@ArthurRGB@yB){\psset{fillstyle=solid,fillcolor=Magenta}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \endpsclip% \psclip{% \rput(\psk@ArthurRGB@xG,\psk@ArthurRGB@yG){\psset{linestyle=none}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \rput(\psk@ArthurRGB@xB,\psk@ArthurRGB@yB){\psset{fillstyle=solid,fillcolor=Cyan}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \endpsclip% \psclip{% \rput(\psk@ArthurRGB@xR,\psk@ArthurRGB@yR){\psset{linestyle=none}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \psclip{% \rput(\psk@ArthurRGB@xG,\psk@ArthurRGB@yG){\psset{linestyle=none}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \rput(\psk@ArthurRGB@xB,\psk@ArthurRGB@yB){\psset{fillstyle=solid,fillcolor=White}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \endpsclip% \endpsclip% \rput(\psk@ArthurRGB@xR,\psk@ArthurRGB@yR){\ifPst@GhostFamily\YeuxPapa\else\Yeux\fi} \rput(\psk@ArthurRGB@xG,\psk@ArthurRGB@yG){\ifPst@GhostFamily\YeuxFils\else\Yeux\fi} \rput(\psk@ArthurRGB@xB,\psk@ArthurRGB@yB){\ifPst@GhostFamily\YeuxMaman\else\Yeux\fi} }} % \def\ArthurCMY{\@ifnextchar[{\pst@ArthurCMY}{\pst@ArthurCMY[]}} \def\pst@ArthurCMY[#1]{{% \pst@killglue \setkeys{psset}{#1}% \definecolor{Cyan}{cmyk}{\psk@ArthurCMY@cC,0,0,0} \definecolor{Magenta}{cmyk}{0,\psk@ArthurCMY@cM,0,0} \definecolor{Yellow}{cmyk}{0,0,\psk@ArthurCMY@cY,0} \definecolor{Blue}{cmyk}{\psk@ArthurCMY@cC,\psk@ArthurCMY@cM,0,0} \definecolor{Red}{cmyk}{0,\psk@ArthurCMY@cM,\psk@ArthurCMY@cY,0} \definecolor{Green}{cmyk}{\psk@ArthurCMY@cC,0,\psk@ArthurCMY@cY,0} \definecolor{Black}{cmyk}{\psk@ArthurCMY@cC,\psk@ArthurCMY@cM,\psk@ArthurCMY@cY,0} \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{fillstyle=solid,fillcolor=Cyan}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi} \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\psset{fillstyle=solid,fillcolor=Magenta}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\psset{fillstyle=solid,fillcolor=Yellow}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \psclip{% \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{linestyle=none}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\psset{fillstyle=solid,fillcolor=Blue}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi} \endpsclip% \psclip{% \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{linestyle=none}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\psset{fillstyle=solid,fillcolor=Green}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \endpsclip% \psclip{% \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\psset{linestyle=none}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\psset{fillstyle=solid,fillcolor=Red}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \endpsclip% \psclip{% \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{linestyle=none}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \psclip{% \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\psset{linestyle=none}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\psset{fillstyle=solid,fillcolor=Black}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \endpsclip% \endpsclip% \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\ifPst@GhostFamily\YeuxPapa\else\Yeux\fi} \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\ifPst@GhostFamily\YeuxFils\else\Yeux\fi} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\ifPst@GhostFamily\YeuxMaman\else\Yeux\fi} }} % les couleurs des fantômes pour la transparence % pour le père \newdimen{\ValeurCouleurCyanPapaCaseG} \newdimen{\ValeurCouleurCyanPapaCaseV} \newdimen{\ValeurCouleurCyanPapaCaseR} \newdimen{\ValeurCouleurCyanPapaCaseL} \newdimen{\ValeurCouleurMagentaFilsCaseG} \newdimen{\ValeurCouleurMagentaFilsCaseV} \newdimen{\ValeurCouleurMagentaFilsCaseR} \newdimen{\ValeurCouleurMagentaFilsCaseL} \newdimen{\ValeurCouleurYellowMamanCaseG} \newdimen{\ValeurCouleurYellowMamanCaseV} \newdimen{\ValeurCouleurYellowMamanCaseR} \newdimen{\ValeurCouleurYellowMamanCaseL} % \def\MosaiqueGhosts{\@ifnextchar[{\pst@MosaiqueGhosts}{\pst@MosaiqueGhosts[]}} \def\pst@MosaiqueGhosts[#1]{{% \pst@killglue \setkeys{psset}{#1}% \pspicture(-8,-6)(8,6) \definecolor{Cyan}{cmyk}{\psk@ArthurCMY@cC,0,0,0} \definecolor{Magenta}{cmyk}{0,\psk@ArthurCMY@cM,0,0} \definecolor{Yellow}{cmyk}{0,0,\psk@ArthurCMY@cY,0} \definecolor{Blue}{cmyk}{\psk@ArthurCMY@cC,\psk@ArthurCMY@cM,0,0} \definecolor{Red}{cmyk}{0,\psk@ArthurCMY@cM,\psk@ArthurCMY@cY,0} \definecolor{Green}{cmyk}{\psk@ArthurCMY@cC,0,\psk@ArthurCMY@cY,0} \definecolor{Black}{cmyk}{\psk@ArthurCMY@cC,\psk@ArthurCMY@cM,\psk@ArthurCMY@cY,0} \definecolor{caseG}{cmyk}{\CyanG,\MagentaG,\YellowG,\KG} \definecolor{caseV}{cmyk}{\CyanV,\MagentaV,\YellowV,\KV} \definecolor{caseL}{cmyk}{\CyanL,\MagentaL,\YellowL,\KL} \definecolor{caseR}{cmyk}{\CyanR,\MagentaR,\YellowR,\KR} \psset{linestyle=none} \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{fillstyle=solid,fillcolor=Cyan}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi} \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\psset{fillstyle=solid,fillcolor=Magenta}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\psset{fillstyle=solid,fillcolor=Yellow}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \psboxfill{\Motif} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5)% \ValeurCouleurCyanPapaCaseG=\psk@ArthurCMY@cC pt \advance\ValeurCouleurCyanPapaCaseG by \CyanG pt \ifdim\ValeurCouleurCyanPapaCaseG >1pt \ValeurCouleurCyanPapaCaseG=1pt \fi \definecolor{caseG}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseG,\MagentaG,\YellowG,\KG}% \ValeurCouleurCyanPapaCaseV=\psk@ArthurCMY@cC pt \advance\ValeurCouleurCyanPapaCaseV by \CyanV pt \ifdim\ValeurCouleurCyanPapaCaseV >1pt \ValeurCouleurCyanPapaCaseV=1pt \fi \definecolor{caseV}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseV,\MagentaV,\YellowV,\KV}% \ValeurCouleurCyanPapaCaseL=\psk@ArthurCMY@cC pt \advance\ValeurCouleurCyanPapaCaseL by \CyanL pt \ifdim\ValeurCouleurCyanPapaCaseL >1pt \ValeurCouleurCyanPapaCaseL=1pt \fi \definecolor{caseL}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseL,\MagentaL,\YellowL,\KL}% \ValeurCouleurCyanPapaCaseR=\psk@ArthurCMY@cC pt \advance\ValeurCouleurCyanPapaCaseR by \CyanR pt \ifdim\ValeurCouleurCyanPapaCaseR >1pt \ValeurCouleurCyanPapaCaseR=1pt \fi \definecolor{caseR}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseR,\MagentaR,\YellowR,\KR}% \psboxfill{\Motif} \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{fillstyle=solid,fillcolor=Cyan}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi} \psclip{\rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\ifPst@GhostFamily\YeuxPapa\else\Yeux\fi} % \ValeurCouleurMagentaFilsCaseG=\psk@ArthurCMY@cM pt \advance\ValeurCouleurMagentaFilsCaseG by \MagentaG pt \ifdim\ValeurCouleurMagentaFilsCaseG >1pt \ValeurCouleurMagentaFilsCaseG=1pt \fi \definecolor{caseG}{cmyk}{\CyanG,\pointless\ValeurCouleurMagentaFilsCaseG,\YellowG,\KG}% \ValeurCouleurMagentaFilsCaseV=\psk@ArthurCMY@cM pt \advance\ValeurCouleurMagentaFilsCaseV by \MagentaV pt \ifdim\ValeurCouleurMagentaFilsCaseV >1pt \ValeurCouleurMagentaFilsCaseV=1pt \fi \definecolor{caseV}{cmyk}{\CyanV,\pointless\ValeurCouleurMagentaFilsCaseV,\YellowV,\KV}% \ValeurCouleurMagentaFilsCaseL=\psk@ArthurCMY@cM pt \advance\ValeurCouleurMagentaFilsCaseL by \MagentaL pt \ifdim\ValeurCouleurMagentaFilsCaseL >1pt \ValeurCouleurMagentaFilsCaseL=1pt \fi \definecolor{caseL}{cmyk}{\CyanL,\pointless\ValeurCouleurMagentaFilsCaseL,\YellowL,\KL}% \ValeurCouleurMagentaFilsCaseR=\psk@ArthurCMY@cM pt \advance\ValeurCouleurMagentaFilsCaseR by \MagentaR pt \ifdim\ValeurCouleurMagentaFilsCaseR >1pt \ValeurCouleurMagentaFilsCaseR=1pt \fi \definecolor{caseR}{cmyk}{\CyanR,\pointless\ValeurCouleurMagentaFilsCaseR,\YellowR,\KR}% \psboxfill{\Motif} \psclip{\rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\ifPst@GhostFamily\YeuxFils\else\Yeux\fi} % la mère \ValeurCouleurYellowMamanCaseG=\psk@ArthurCMY@cY pt \advance\ValeurCouleurYellowMamanCaseG by \YellowG pt \ifdim\ValeurCouleurYellowMamanCaseG >1pt \ValeurCouleurYellowMamanCaseG=1pt \fi \definecolor{caseG}{cmyk}{\CyanG,\MagentaG,\pointless\ValeurCouleurYellowMamanCaseG,\KG}% \ValeurCouleurYellowMamanCaseV=\psk@ArthurCMY@cY pt \advance\ValeurCouleurYellowMamanCaseV by \YellowV pt \ifdim\ValeurCouleurYellowMamanCaseV >1pt \ValeurCouleurYellowMamanCaseV=1pt \fi \definecolor{caseV}{cmyk}{\CyanV,\MagentaV,\pointless\ValeurCouleurYellowMamanCaseV,\KV}% \ValeurCouleurYellowMamanCaseL=\psk@ArthurCMY@cY pt \advance\ValeurCouleurYellowMamanCaseL by \YellowL pt \ifdim\ValeurCouleurYellowMamanCaseL >1pt \ValeurCouleurYellowMamanCaseL=1pt \fi \definecolor{caseL}{cmyk}{\CyanL,\MagentaL,\pointless\ValeurCouleurYellowMamanCaseL,\KL}% \ValeurCouleurYellowMamanCaseR=\psk@ArthurCMY@cY pt \advance\ValeurCouleurYellowMamanCaseR by \YellowR pt \ifdim\ValeurCouleurYellowMamanCaseR >1pt \ValeurCouleurYellowMamanCaseR=1pt \fi \definecolor{caseR}{cmyk}{\CyanR,\MagentaR,\pointless\ValeurCouleurYellowMamanCaseR,\KR}% \psboxfill{\Motif} \psclip{\rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\ifPst@GhostFamily\arthurMaman\else\arthurB\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% % Père et fils se croisent \definecolor{caseG}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseG,\pointless\ValeurCouleurMagentaFilsCaseG,\YellowG,\KG}% \definecolor{caseV}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseV,\pointless\ValeurCouleurMagentaFilsCaseV,\YellowV,\KV}% \definecolor{caseL}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseL,\pointless\ValeurCouleurMagentaFilsCaseL,\YellowL,\KL}% \definecolor{caseR}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseR,\pointless\ValeurCouleurMagentaFilsCaseR,\YellowR,\KR}% % \psboxfill{\Motif} \psclip{% \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \psclip{\rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% \endpsclip% % Mère et fils se croisent \definecolor{caseG}{cmyk}{\CyanG,\pointless\ValeurCouleurMagentaFilsCaseG,\pointless\ValeurCouleurYellowMamanCaseG,\KG}% \definecolor{caseV}{cmyk}{\CyanV,\pointless\ValeurCouleurMagentaFilsCaseV,\pointless\ValeurCouleurYellowMamanCaseV,\KV}% \definecolor{caseL}{cmyk}{\CyanL,\pointless\ValeurCouleurMagentaFilsCaseL,\pointless\ValeurCouleurYellowMamanCaseL,\KL}% \definecolor{caseR}{cmyk}{\CyanR,\pointless\ValeurCouleurMagentaFilsCaseR,\pointless\ValeurCouleurYellowMamanCaseR,\KR}% % \psboxfill{\Motif} \psclip{% \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\ifPst@GhostFamily\arthurMaman\else\arthurB\fi}} \psclip{\rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% \endpsclip% % Mère et Père se croisent \definecolor{caseG}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseG,\MagentaG,\pointless\ValeurCouleurYellowMamanCaseG,\KG}% \definecolor{caseV}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseV,\MagentaV,\pointless\ValeurCouleurYellowMamanCaseV,\KV}% \definecolor{caseL}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseL,\MagentaL,\pointless\ValeurCouleurYellowMamanCaseL,\KL}% \definecolor{caseR}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseR,\MagentaR,\pointless\ValeurCouleurYellowMamanCaseR,\KR}% % \psboxfill{\Motif} \psclip{% \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\ifPst@GhostFamily\arthurMaman\else\arthurB\fi}} \psclip{\rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% \endpsclip% % Père, Mère et fils se croisent \definecolor{caseG}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseG,\pointless\ValeurCouleurMagentaFilsCaseG,\pointless\ValeurCouleurYellowMamanCaseG,\KG}% \definecolor{caseV}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseV,\pointless\ValeurCouleurMagentaFilsCaseV,\pointless\ValeurCouleurYellowMamanCaseV,\KV}% \definecolor{caseL}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseL,\pointless\ValeurCouleurMagentaFilsCaseL,\pointless\ValeurCouleurYellowMamanCaseL,\KL}% \definecolor{caseR}{cmyk}{\pointless\ValeurCouleurCyanPapaCaseR,\pointless\ValeurCouleurMagentaFilsCaseR,\pointless\ValeurCouleurYellowMamanCaseR,\KR}% % \psboxfill{\Motif} \psclip{% \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\ifPst@GhostFamily\arthurMaman\else\arthurB\fi}} \psclip{\rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi}} \psclip{\rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){% \ifPst@GhostFamily\arthurFils\else\arthurG\fi}} \psframe[fillstyle=boxfill,linestyle=none](-8,-5)(8,5) \endpsclip% \endpsclip% \endpsclip% % pour dessiner les contours \ifPst@Contour \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\psset{linestyle=solid}% \ifPst@GhostFamily\arthurPapa\else\arthurR\fi} \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\psset{linestyle=solid}% \ifPst@GhostFamily\arthurFils\else\arthurG\fi} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\psset{linestyle=solid}% \ifPst@GhostFamily\arthurMaman\else\arthurB\fi} \fi \rput(\psk@ArthurCMY@xC,\psk@ArthurCMY@yC){\ifPst@GhostFamily\YeuxPapa\else\Yeux\fi} \rput(\psk@ArthurCMY@xM,\psk@ArthurCMY@yM){\ifPst@GhostFamily\YeuxFils\else\Yeux\fi} \rput(\psk@ArthurCMY@xY,\psk@ArthurCMY@yY){\ifPst@GhostFamily\YeuxMaman\else\Yeux\fi} \endpspicture}} \makeatother \title{Une application du \\ recouvrement de couleurs :\\ les spectres de lumières \footnote{Principe : Denis \textsc{Girou}, réalisation : Manuel \textsc{Luque}}} \author{} \date{Version 0.1\\ 22 Juillet 2003} \pagestyle{empty} \newcount\Rot \newdimen{\unit} \begin{document} \maketitle Nous avons, au cours de nos études, entendu parler de \textit{spectres} de lumières diverses : \textit{spectre} continu de la lumière blanche qui étale toutes les couleurs de l'arc-en-ciel, \textit{spectres} de raies d'un élément chimique, \textit{spectre} d'absorption d'une solution etc. Mais, puisqu'il s'agit de \textit{spectres}, êtes-vous bien certain de les avoir vraiment vus ? C'est cette lacune que nous allons nous efforcer de combler et, par la même occasion, nous parlerons de la synthèse additive RGB de la synthèse soustractive CMYK et aussi de la transparence ! \section{La synthèse additive RGB} Nous avons mis au point des projecteurs de lumière rouge, verte et bleue, dont on peut régler l'intensité lumineuse du faisceau, permettant ainsi de mettre en lumière(sic) ces fameux spectres, qui sans cela resteraient invisibles à nos yeux ! Nous en avons profité pour les filmer à leur insu\ldots{} On remarquera, en bas à gauche, une apparition extrêmement rare, le spectre de l'arc-en-ciel, que nous avons eu la chance de figer sur la pellicule. Observons, tout d'abord, sur cette animation, leur comportement lorsqu'ils se croisent\ldots \begin{center} \begin{pspicture}*(-8,-4)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-4)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-0.5,yR=1,xG=0,yG=-1,xB=0.5,yB=0.5] \rput(-6,-1){% \psset{unit=0.5} \begin{psclip}{\arthurB} \psframe[fillstyle=slopes](-2.9,-5)(2.5,2.2) \end{psclip} \Yeux} \end{pspicture} \end{center} \begin{verbatim} \ArthurRGB[xR=-0.5,yR=1,xG=0,yG=-1,xB=0.5,yB=0.5] \end{verbatim} Cette commande place le spectre rouge au point de coordonnées \verb+(xR=-0.5,yR=1)+, le spectre vert en \verb+(xG=0,yG=-1)+ et le bleu en \verb+(xB=0.5,yB=0.5)+. Nous avons le choix entre deux familles : \begin{itemize} \item celle d'Arthur le fantôme\footnote{% Arthur est une création du dessinateur de bandes dessinées \textsc{Cézard}, auteur des aventures \textit{d'Arthur le petit fantôme}, et d'autres séries comme \textit{Les Rigolus et les Tristus}. La maman d'Arthur a été légèrement retouchée par rapport à l'originale, toutefois ces trois dessins ne sont que des pâles copies des originaux.} ; \item et une autre qui n'a pas de renommée particulière. \end{itemize} C'est la famille d'Arthur qui est choisie par défaut. Le paramètre \verb+GhostFamily=false+ placera la deuxième famille de spectres. Pour leurs dimensions et positionnement respectifs, on se référera aux images suivantes. \begin{center} \psset{unit=0.8} \begin{pspicture}(-3.5,-4)(3.5,4) \psgrid(-3,-4)(3,4) \psframe[fillstyle=solid,fillcolor=black](-2,-3)(2,3) \psset{fillstyle=solid,fillcolor=white,linestyle=none} \arthurPapa\YeuxPapa \end{pspicture} \begin{pspicture}(-3.5,-4)(3.5,4) \psgrid(-3,-4)(3,4) \psframe[fillstyle=solid,fillcolor=black](-2,-3)(2,3) {\psset{fillstyle=solid,fillcolor=white,linestyle=none}\arthurFils}\YeuxFils \end{pspicture} \begin{pspicture}(-3.5,-4)(3.5,4) \psgrid(-3,-4)(3,4) \psframe[fillstyle=solid,fillcolor=black](-2,-3)(2,3) \psset{fillstyle=solid,fillcolor=white,linestyle=none} \arthurMaman\YeuxMaman \end{pspicture} \end{center} \begin{center} \psset{unit=0.57} \begin{pspicture}(-5,-6)(5,3.5) \psgrid(-4,-6)(4,3) \psframe[fillstyle=solid,fillcolor=black](-3,-5)(3,2) \psset{fillstyle=solid,fillcolor=red}\arthurR\Yeux \end{pspicture} \begin{pspicture}(-5,-6)(5,3.5) \psgrid(-4,-6)(4,3) \psframe[fillstyle=solid,fillcolor=black](-3,-5)(3,2) \psset{fillstyle=solid,fillcolor=green}\arthurG\Yeux \end{pspicture} \begin{pspicture}(-5,-6)(5,3.5) \psgrid(-4,-6)(4,3) \psframe[fillstyle=solid,fillcolor=black](-3,-5)(3,2) \psset{fillstyle=solid,fillcolor=blue}\arthurB\Yeux \end{pspicture} \end{center} La luminosité de chacun des faisceaux peut-être affaiblie avec les paramètres \verb+cR=...,cG=...,cB=...+. La valeur par défaut, luminosité maximale, de chaque couleur vaut 1. Avec \verb+[cR=0.5,cG=0.7,cB=0.6]+, la scène précédente s'assombrit et devient : \begin{center} \begin{pspicture}*(-8,-4)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-4)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-1,cR=0.5,yR=0.5,cG=0.7,xG=0,yG=-0.5,xB=1,yB=0.5,cB=0.6] \rput(-6.5,-1){% \psset{unit=0.5} \begin{psclip}{\arthurG} \psframe[fillstyle=slopes](-2.6,-5)(2.5,2.2) \end{psclip} \psarc[linestyle=solid](0,-0.2){0.5}{210}{-50}\Yeux} \end{pspicture} \end{center} Avec, \verb+[cR=0.2,cG=0.2,cB=0.2]+ on obtient une tonalité plus sépulcrale\ldots \begin{center} \begin{pspicture}*(-8,-4)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-4)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-1,cR=0.2,yR=-1,cG=0.2,xG=0,yG=1,xB=1,yB=0,cB=0.2] \rput(-6.5,-1.5){% \psset{unit=0.5} \begin{psclip}{\arthurG} \psframe[fillstyle=slopes](-2.6,-5)(2.6,2.2) \end{psclip} \psellipse[linestyle=solid,fillstyle=solid,fillcolor=white](0,-0.6)(0.2,0.3)\Yeux} \end{pspicture} \end{center} Ces illustrations mettent en \oe{}uvre, bien sûr, la synthèse additive RVB des couleurs. \begin{itemize} \item Rouge $+$ Vert $=$ Jaune \begin{center} \begin{pspicture}*(-8,-3)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-3)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-0.5,yR=1,xG=-1,yG=0,xB=20,yB=0.5] \end{pspicture} \end{center} \item Rouge $+$ Bleu $=$ Magenta \begin{center} \begin{pspicture}*(-8,-4)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-3)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-0.75,yR=1,xG=20,yG=0.25,xB=0,yB=0.5] \end{pspicture} \end{center} \item Bleu $+$ Vert $=$ Cyan \begin{center} \begin{pspicture}*(-8,-3)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-3)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-20,yR=1,xG=0.5,yG=0,xB=0,yB=0.5] \end{pspicture} \end{center} \item Rouge $+$ Vert $+$ Bleu $=$ Blanc \begin{center} \begin{pspicture}*(-8,-3)(8,4) \psframe[fillstyle=solid,fillcolor=black](-8,-3)(8,4) \psset{linestyle=none} \ArthurRGB[xR=-1,yR=1,xG=-0.5,yG=-0.5,xB=-0.25,yB=0.5] \end{pspicture} \end{center} \end{itemize} \newpage \section{La synthèse soustractive CMYK} Les fantômes ont changé de tenues : ils ont revêtu un drap de couleur respectivement cyan, magenta et jaune. Ils vont maintenant faire office de filtres en se déplaçant devant le faisceau d'un projecteur de lumière blanche. \begin{center} \begin{pspicture}*(-8,-8)(8,8) \setrannum{\Rot}{5}{11} \setrandim{\unit}{1pt}{1.5pt} \multiply\Rot by 10 \psframe[fillstyle=solid,fillcolor=black](-8,-8)(8,8) \psclip{\pscircle[fillstyle=solid]{7}} \psset{linestyle=none,unit=\pointless\unit} \pstilt{\Rot}{\ArthurCMY[xC=0,yC=0,xM=1,yM=-0.5,xY=1.5,yY=1.5]} \endpsclip \end{pspicture} \end{center} Nous pouvons ici aussi, observer leur comportement, lorsqu'ils se croisent, sur cette animation. L'intensité des composantes cyan, magenta et jaune peut être réglée par l'intermédiaire des paramètres : \verb+cC=0.5,cM=0.7,cY=0.6+, qui valent 1 par défaut. Avec ces valeurs la scène précédente devient : \begin{center} \begin{pspicture}*(-8,-8)(8,8) \setrannum{\Rot}{5}{11} \setrandim{\unit}{1pt}{1.5pt} \multiply\Rot by 10 \psframe[fillstyle=solid,fillcolor=black](-8,-8)(8,8) \psclip{\pscircle[fillstyle=solid]{7}} \psset{linestyle=none,unit=\pointless\unit} \pstilt{\Rot}{\ArthurCMY[xC=0,yC=0,xM=1,yM=-0.5,xY=1.5,yY=1.5,cC=0.5,cM=0.7,cY=0.6]} \endpsclip \end{pspicture} \end{center} Ces illustrations mettent en application la synthèse soustractive CMYK des couleurs. \begin{itemize} \item Cyan $+$ Jaune $=$ Vert \item Cyan $+$ Magenta $=$ Bleu \item Magenta $+$ Jaune $=$ Rouge \item Cyan $+$ Jaune $+$ Magenta $=$ Noir \end{itemize} Avec bien sûr des nuances dans les résultats suivant les valeurs choisies pour les couleurs de base (paramètres : \verb+[cC=1,cM=1,cY=1]+). \newpage \section{La transparence} Le choix du système CMYK peut être très judicieux lorsqu'il s'agit de simuler les effets de transparence et c'est ici que le choix de spectres pour illustrer cette notion prend toute sa signification, puisque chacun sait que les fantômes sont transparents\ldots La convention adoptée, lorsque deux couleurs se superposent, est la suivante : les composantes de même nature (cyan, magenta et yellow) s'ajoutent et le résultat de leur addition est, en cas de dépassement, limité à 1. \MosaiqueGhosts[cC=0.8,cM=0.5,xC=0,yC=0.5,xM=0,yM=-0.5,yY=3.5] \MosaiqueGhosts[cC=0.8,cM=0.5,xC=8,yC=0,xM=-6,yM=-1,yY=0,xY=-6] \MosaiqueGhosts[cC=0.8,cM=0.5,xC=0,yC=-1,xM=-6,yM=-1,yY=0,xY=0] \MosaiqueGhosts[cC=0.8,cM=0.5,xC=0,yC=0,xM=0,yM=-1,yY=1,xY=0] \psset{GhostFamily=false,Contour=true} \MosaiqueGhosts[cC=0.8,cM=0.5,xC=0,yC=0,xM=0,yM=-1,yY=4] \MosaiqueGhosts[cC=0.8,cM=0.5,xC=8,yC=0,xM=-6,yM=-1,yY=0,xY=-6] \MosaiqueGhosts[cC=0.8,cM=0.5,xC=0,yC=-1,xM=-6,yM=-1,yY=0,xY=0] \MosaiqueGhosts[cC=0.8,cM=0.5,xC=0,yC=0,xM=0,yM=-1,yY=1,xY=0] \end{document}