
小さな画像がたくさんあり、それぞれの画像の中心は (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}
ただし、それを指定するには違いを知っておく必要があります。