지역 채우기

지역 채우기

또 다른 날, 또 다른 문제! 이번에는 왜 채운 후 tikz가 이렇게 공백을 남기는지 이해할 수 없습니다.

여기에 이미지 설명을 입력하세요

\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}

답변1

여기서도 필요하지 않습니다 clip. 문제는 ++경로의 증분을 사용한다는 것입니다. 첫 번째 좌표에 대해 그렇게 할 수 있지만 다른 좌표에 대해 이 작업을 수행하면 경로에 "점프"가 발생합니다. 그러나 로드하는 동안 calc다음을 수행할 수 있습니다.

\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}

여기에 이미지 설명을 입력하세요

그러나 이미 노드 이름을 지정했으므로 이를 다음과 같이 단순화할 수 있습니다.

\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}

여기에 이미지 설명을 입력하세요

여기에도 채우기를 넣었습니다 background layer.

관련 정보