我有很多小图片,每个图片都在自己的图形中以 (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}
但您需要知道差异才能指定它。