
У меня много маленьких картинок, каждая из которых центрирована в точке (0,0) на своей собственной фигуре, но мне нужно объединить их так, чтобы на объединенной картинке точка (0,0) первой картинки (в области видимости) была равна точке (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}
Хотя, чтобы это определить, нужно знать разницу.