Llenando una región

Llenando una región

¡Otro día, otro problema! Esta vez no puedo entender por qué, después de llenar, tikz deja un espacio en blanco como este.

ingrese la descripción de la imagen aquí

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=0.7]
\coordinate (O) at (0,0);
\coordinate (I) at (12,0);

\coordinate (C1) at (4,0);
\coordinate (C2) at (7,0);

\draw ($ (O)+(-1,0) $) -- ($ (I)+(1,0) $);%asse ottico

\draw [very thick] (C1)++(75:-3) node (A1) {A1} arc (75:-75:-3) node (B1) 
{B1};
\draw [very thick] (C2)++(75:3) node (A2) {A2} arc (75:-75:3) node (B2) {B2};

\begin{scope}
\clip (C1)++(75:-3) arc (75:-75:-3) -- (A2) -- (C2)++(75:3) arc (75:-75:3) -- 
(A1);
\filldraw [color=lightgray, opacity=0.6] (-10,-10) rectangle (20,10);
\end{scope}
\end{tikzpicture}
\end{document}

Respuesta1

No necesitas ni siquiera clipaquí. El problema es que usas el incremento ++en la ruta. Puedes hacer eso para la primera coordenada, pero si haces esto para las demás, el camino tiene "saltos". Sin embargo, mientras estás cargando calc, puedes simplemente hacer

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=0.7]
\coordinate (O) at (0,0);
\coordinate (I) at (12,0);

\coordinate (C1) at (4,0);
\coordinate (C2) at (7,0);

\draw ($ (O)+(-1,0) $) -- ($ (I)+(1,0) $);%asse ottico

\draw [very thick] (C1)++(75:-3) node (A1) {A1} arc (75:-75:-3) node (B1) 
{B1};
\draw [very thick] (C2)++(75:3) node (A2) {A2} arc (75:-75:3) node (B2) {B2};

\fill[color=lightgray, opacity=0.6](C1)++(75:-3) arc (75:-75:-3) 
-- ($(C2)+(75:3)$) arc (75:-75:3) -- cycle ;
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Sin embargo, como ya tiene nodos con nombre, puede simplificar esto para

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc,backgrounds}
\begin{document}
\begin{tikzpicture}[scale=0.7]
\coordinate (O) at (0,0);
\coordinate (I) at (12,0);

\coordinate (C1) at (4,0);
\coordinate (C2) at (7,0);

\draw ($ (O)+(-1,0) $) -- ($ (I)+(1,0) $);%asse ottico

\draw [very thick] (C1)++(75:-3) node (A1) {A1} arc (75:-75:-3) node (B1) 
{B1};
\draw [very thick] (C2)++(75:3) node (A2) {A2} arc (75:-75:3) node (B2) {B2};

\begin{scope}[on background layer]
\fill[color=lightgray, opacity=0.6](A1.center)  arc (75:-75:-3) -- 
    (A2.center) arc (75:-75:3) -- cycle ;
\end{scope}
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Aquí también le pongo el relleno al background layer.

información relacionada