
Ich habe viele kleine Bilder, die in ihrer eigenen Abbildung jeweils auf (0,0) zentriert sind, aber ich muss sie kombinieren und im kombinierten Bild sollte (0,0) des 1. Bildes (in einem Bereich) (4,2) des 2. Bildes sein – was ist der beste Weg, dies zu erreichen?
\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}
Das X hinter den Koordinaten soll verdeutlichen, dass diese Koordinaten in unterschiedlichen Bereichen gelten (sollten).
PS: Momentan mache ich es mit Xshift, Yshift, aber das ist ziemlich mühsam.
Antwort1
Verwenden Sie benannte Koordinaten, zum Beispiel:
\coordinate (x) at (4,5);
\coordinate (y) at (3,2);
\filldraw[green](x)circle(2pt);
...
\draw[red,latex-](0,0)--(y);
...
Darüber hinaus können Sie bei Bedarf relative Positionierungen und Berechnungen durchführen.
Wenn Sie solche Koordinaten in mehreren TikZ-Bildern verwenden möchten, nutzen Sie die Option remember picture
.
Für den Teil des Verschiebens des Ursprungs ist es etwas einfacher, den Bereich über eine Koordinate zu verschieben xshift
, als mit , yshift
, wie in
\begin{scope}[shift={(1,3)}]
\draw[red,latex-](0,0)--(3,2);
\end{scope}
Allerdings müssen Sie den Unterschied kennen, um ihn angeben zu können.