Заполнение контура без утончения линии

Заполнение контура без утончения линии

Рассмотрим следующий 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}

Связанный контент