在两个不同的范围内匹配坐标

在两个不同的范围内匹配坐标

我有很多小图片,每个图片都在自己的图形中以 (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

对于移动原点的部分,通过使用 , 的坐标来移动范围会更容易一些xshiftyshift例如

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

但您需要知道差异才能指定它。

相关内容