
Рассмотрим следующий MWE:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path[draw] (1,0) circle (1) (1.7,1.2);
\path[draw] (.5,-1) circle (1) (0.5,-2.2);
\path[clip] (.5,-1) circle (1) (0.5,-2.2);
\path[clip] (1,0) circle (1) (1.7,1.2);
\path[fill=white] (.5,-1) circle (1) (0.5,-2.2);
% \path[draw] (1,0) circle (1) (1.7,1.2);
% \path[draw] (.5,-1) circle (1) (0.5,-2.2); add the commented lines to get the desired output
\end{tikzpicture}
\end{document}
Можно ли учитывать толщину линии при заливке обрезанной области так, чтобы граница залитой области не была тоньше, а сохраняла исходную ширину?
Чтобы добиться этого результата, я перерисовываю оба круга после заполнения, но мне это кажется неоптимальным решением.
решение1
Вы можете использовать a, scope
чтобы применить его clip
только к перекрывающейся области, а затем просто нарисовать два круга после заполнения перекрытия:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\path[clip] (.5,-1) circle (1) (0.5,-2.2);
\path[clip] (1,0) circle (1) (1.7,1.2);
\path[fill=orange] (.5,-1) circle (1) (0.5,-2.2);
\end{scope}
\path[draw] (1,0) circle (1) (1.7,1.2);
\path[draw] (.5,-1) circle (1) (0.5,-2.2);
\end{tikzpicture}
\end{document}