TIkZ: подгонка обрезанных узлов

TIkZ: подгонка обрезанных узлов

Я хотел бы нарисовать рамку, которая охватывает несколько фигур, используя опцию fit. Но когда некоторые фигуры обрезаются, fitвсе равно принимает всю фигуру.

Вот минимальный рабочий пример.

\documentclass{standalone}
\usepackage{tikz}

\usetikzlibrary{fit,positioning}

\begin{document}
\begin{tikzpicture}
    \begin{scope}
        \clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
        \node [draw, circle, minimum size=2cm] (A) {};
    \end{scope}
    \begin{scope}[xshift=1cm]
        \clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
        \node [draw, circle, minimum size=2cm] (B) {};
    \end{scope}
    \node [draw=blue, line width=1mm, inner sep=1mm, rectangle, fit=(A) (B)] {};
\end{tikzpicture}
\end{document}

И результат.

Вставленный прямоугольник не игнорирует вырезанную часть.

Есть ли способ лучше подогнать его под мои формы?

Поскольку эти scopeсреды генерируются автоматически (с append after commandопцией), я бы хотел сохранить их максимально похожими. В остальном я бы принял любое решение.

решение1

Просто впишитеB.center

\node [draw=blue, line width=1mm, inner sep=1mm, rectangle, fit=(A) (B.center)] {};

Код:

\documentclass{standalone}
\usepackage{tikz}

\usetikzlibrary{fit,positioning}

\begin{document}
\begin{tikzpicture}
    \begin{scope}
        \clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
        \node [draw, circle, minimum size=2cm] (A) {};
    \end{scope}
    \begin{scope}[xshift=1cm]
        \clip (-1cm, -1cm) rectangle ++(1cm, 2cm);
        \node [draw, circle, minimum size=2cm] (B) {};
    \end{scope}
    \node [draw=blue, line width=1mm, inner sep=1mm, rectangle, fit=(A) (B.center)] {};
\end{tikzpicture}
\end{document}

введите описание изображения здесь

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