%!TEX pdflatex
\documentclass[french,a4paper,11pt]{article}
\usepackage{babel}
\usepackage[margin=1.5cm]{geometry}
\usepackage[table,svgnames]{xcolor}
\usepackage{tikz}
\usepackage{simplekv}
\usepackage{pgf}
\setKVdefault[cerclesCouleurs]{
R = red,
G = ForestGreen,
B = blue,
RG = Yellow,
RB = Magenta,
GB = Cyan,
RGB = White,
nomR = Rouge,
nomG = Vert,
nomB = Bleu,
nomRG = Jaune,
nomGB = Cyan,
nomBR = Magenta,
nomRGB = Blanc,
synthese= additive,
systeme = RGB
}
\newcommand{\CerclesCouleurs}[1][]{
\restoreKV[cerclesCouleurs] %paramètres par défaut
\setKV[cerclesCouleurs]{#1} % lecture des paramètres passés à la macro et remplacement des valeurs
\pgfmathparse{1}\let\varR\pgfmathresult
\pgfmathparse{1/2}\let\varA\pgfmathresult
\pgfmathparse{1/3}\let\varB\pgfmathresult
\pgfmathparse{\varB-\varA*sqrt(3)}\let\varC\pgfmathresult
\begin{tikzpicture}
%cercles complets
\filldraw[draw=none,{\useKV[cerclesCouleurs]{G}}] (-\varA,\varB) circle (\varR); %Gauche
\filldraw[draw=none,{\useKV[cerclesCouleurs]{B}}] (\varA,\varB) circle (\varR); %Droite
\filldraw[draw=none,{\useKV[cerclesCouleurs]{R}}] (0,\varC) circle (\varR); %Bas
%intersection BG
\begin{scope}
\clip (-\varA,\varB) circle (\varR); %Gauche
\fill[draw=none,{\useKV[cerclesCouleurs]{RG}}] (0,\varC) circle (\varR); %Bas
\end{scope}
%intersection RB
\begin{scope}
\clip (\varA,\varB) circle (\varR); %Droite
\fill[draw=none,{\useKV[cerclesCouleurs]{RB}}] (0,\varC) circle (\varR); %Bas
\end{scope}
%intersection GB
\begin{scope}
\clip (\varA,\varB) circle (\varR); %Droite
\fill[draw=none,{\useKV[cerclesCouleurs]{GB}}] (-\varA,\varB) circle (\varR); %Gauche
\end{scope}
%les trois
\begin{scope}
\clip (\varA,\varB) circle (\varR); %Droite
\clip (-\varA,\varB) circle (\varR); %Gauche
\fill[draw=none,{\useKV[cerclesCouleurs]{RGB}}] (0,\varC) circle (\varR); %Bas
\end{scope}
\draw[dashed] (-\varA,\varB) circle (\varR); %gauche
\draw[dashed] (\varA,\varB) circle (\varR); %droite
\draw[dashed] (0,\varC) circle (\varR); %bas
%projecteur central
\draw[] (-\varR/4,\varC-2*\varR) -- (\varR/4,\varC-2*\varR) -- (\varR/4,\varC-3*\varR) -- (-\varR/4,\varC-3*\varR) -- cycle; %l=0.5 L=0.8
\draw[dashed] (-\varR/4,\varC-2*\varR) -- (-0.92,-0.92); %spot gauche
\draw[dashed] (\varR/4,\varC-2*\varR) -- (0.92,-0.92); %spot droit
%projecteur gauche
\draw[] (-2.97,2.05)--(-3.22,1.61)--(-2.36,1.11)--(-2.11,1.55)--cycle;
\draw[dashed] (-2.11,1.55) -- (-0.37,1.32); %spot gauche
\draw[dashed] (-2.36,1.11) -- (-1.29,-0.28); %spot droit
%projecteur droit
\draw[] (2.11,1.55) -- (2.36,1.11) -- (3.22,1.61) -- (2.97,2.05) -- cycle;
\draw[dashed] (2.11,1.55) -- (0.37,1.32); %spot gauche
\draw[dashed] (2.36,1.11) -- (1.29,-0.28); %spot droit
%nom des couleurs
\node (R) at (-0.46,-1.13) {} ;
\node (R1) at (-1.5,-2.5) {\useKV[cerclesCouleurs]{nomR}} ; \draw (R) -- (R1) ;
\node (G) at (-0.75,0.96) {} ;
\node (G1) at (-1.4,1.9) {\useKV[cerclesCouleurs]{nomG}} ; \draw (G) -- (G1) ;
\node (B) at (1.2,0.17) {} ;
\node (B1) at (2.9,0) {\useKV[cerclesCouleurs]{nomB}} ; \draw (B) -- (B1) ;
\node (C) at (0,0.7) {} ;
\node (C1) at (0.3,1.9) {\useKV[cerclesCouleurs]{nomGB}} ; \draw (C) -- (C1) ;
\node (M) at (0.6,-0.3) {} ;
\node (M1) at (2.5,-2) {\useKV[cerclesCouleurs]{nomBR}} ; \draw (M) -- (M1) ;
\node (Y) at (-0.6,-0.4) {} ;
\node (Y1) at (-2,-1) {\useKV[cerclesCouleurs]{nomRG}} ; \draw (Y) -- (Y1) ;
\node at(0,0) {\useKV[cerclesCouleurs]{nomRGB}} ;
\node at (2.2,-2.9) {\textbf{{Synthèse}}};
\node at (2.2,-3.3) {\textbf{\useKV[cerclesCouleurs]{synthese}}};
\node at (-1.4,-3.3) {\textbf{\useKV[cerclesCouleurs]{systeme}}};
\end{tikzpicture}
}
\begin{document}
\CerclesCouleurs[]\hfill
\CerclesCouleurs[%
R = cyan,
G = magenta,
B = yellow,
RG = Blue,
RB = ForestGreen,
GB = Red,
RGB = Black,
nomR = Cyan,
nomG = Magenta,
nomB = Jaune,
nomRG = Bleu,
nomGB = Rouge,
nomBR = Vert,
nomRGB = Noir,
synthese=soustractive,
systeme =CMY]
%
\end{document}