2つの異なるスコープで座標を一致させる

2つの異なるスコープで座標を一致させる

小さな画像がたくさんあり、それぞれの画像の中心は (0,0) ですが、それらを結合する必要があり、結合された画像では、最初の画像 (スコープ内) の (0,0) が 2 番目の画像の (4,2) になる必要があります。これを実現する最善の方法は何ですか?

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\filldraw[green](4,5)circle(2pt);
\begin{scope}
    \begin{scope}
%Should point at the green dot - (3,2)X and (4,5) should be matched
    \draw[red,latex-](0,0)--(3,2);
    \end{scope}
    \begin{scope}
% Should be at the other end of the red vector (3,2)X and (0,0)XX should be matched
        \draw[blue](0,0)circle(5pt);
    \end{scope}
\end{scope}
\end{tikzpicture}
\end{document}

座標の後のXは、これらの座標が異なるスコープ内にある(有効であるはず)ことを視覚化するためにあります。

PS: 現在は xshift、yshift を使っていますが、ちょっと面倒です。

答え1

次のような名前付き座標を使用します。

\coordinate (x) at (4,5);
\coordinate (y) at (3,2);
\filldraw[green](x)circle(2pt);
...
    \draw[red,latex-](0,0)--(y);
...

さらに、必要に応じて相対的な配置や計算を行うこともできます。

このような座標を複数の TikZ 画像で使用する場合は、 オプションを使用しますremember picture

xshift原点を移動する部分については、 、yshift、 などの座標を使ってスコープを移動する方が少し簡単です。

\begin{scope}[shift={(1,3)}]
  \draw[red,latex-](0,0)--(3,2);
\end{scope}

ただし、それを指定するには違いを知っておく必要があります。

関連情報