
Das ist zwar allgemein bekannt, aber ich kann mich nicht erinnern, dass mir das schon einmal passiert ist. Hier ein Minimalbeispiel:
\documentclass[12pt,a4paper]{amsart}
\usepackage{tikz}
\begin{document}
\tikzset{vert/.style={circle,inner sep=1mm,draw}}
\tikzset{edge/.style={draw=#1,very thick}}
\begin{center}
\begin{tikzpicture}[scale=2.5]
\node[vert] (a) at (1.,1.3){};
\node[vert] (b) at (1.7,1.3){};
\draw[edge=blue,out=0,in=225] (a) to (b);
\end{tikzpicture}
\begin{tikzpicture}[scale=2.5,rotate=225]
\node[vert] (a) at (1.,1.3){};
\node[vert] (b) at (1.7,1.3){};
\draw[edge=blue,out=0,in=225] (a) to (b);
\end{tikzpicture}
\end{center}
\end{document}
Im gedrehten Bild ist die Linie nicht richtig an den Knoten befestigt:
Ist das wirklich ein Fehler oder übersehe ich etwas? Gibt es eine bekannte Lösung?
Antwort1
Ich stimme mit Shady Puck überein, dass dies kein Fehler ist. Eine wohl präzisere Erklärung dafür, was vor sich geht, ist jedoch, sich daran zu erinnern, dass Knoten standardmäßig nicht transformiert werden. Wenn Sie sie transformieren möchten, d. h. die Knotenanker den Transformationen unterziehen möchten, müssen Sie Folgendes sagen transform shape
. (In Ihrer Einstellung muss die Skalierungstransformation rückgängig gemacht werden, um das vermutlich gewünschte Ergebnis zu erzielen.)
\documentclass[12pt,a4paper]{amsart}
\usepackage{tikz}
\begin{document}
\tikzset{vert/.style={circle,inner sep=1mm,draw}}
\tikzset{edge/.style={draw=#1,very thick}}
\begin{center}
\begin{tikzpicture}[scale=2.5]
\node[vert] (a) at (1.,1.3){};
\node[vert] (b) at (1.7,1.3){};
\draw[edge=blue,out=0,in=225] (a) to (b);
\end{tikzpicture}
\begin{tikzpicture}[scale=2.5,rotate=225,transform shape]
\node[vert,scale=1/2.5] (a) at (1.,1.3){};
\node[vert,scale=1/2.5] (b) at (1.7,1.3){};
\draw[edge=blue,out=0,in=225] (a) to (b);
\end{tikzpicture}
\end{center}
\end{document}
Antwort2
Es handelt sich nicht um einen Fehler. Das Verhalten lässt sich leicht beheben.
Wenn Sie einen Modifikator für das gesamte Bild angeben, was TikZ wendet diesen Modifikator auf das Bild anUndjedes Objekt einzeln. Daher ist es notwendig, diese individuelle Rotation von der allgemeinen durch unsere eigenen proportionalen individuellen Rotationen abzuheben. Nachdem ich eine Weile mit den Vorzeichen herumgespielt hatte, konnte ich diesen Code verwenden, um dieses Ergebnis zu erzielen.
\tikzset{vert/.style={circle,inner sep=1mm,draw}}
\tikzset{edge/.style={draw=#1,very thick}}
\begin{tikzpicture}[scale=2.5]
\node[vert] (a) at (1.,1.3){};
\node[vert] (b) at (1.7,1.3){};
\draw[edge=blue,out=0,in=225] (a) to (b);
\end{tikzpicture}
\begin{tikzpicture}[scale=2.5,rotate=225]
\node[vert,rotate=-225] (a) at (1.,1.3){};
\node[vert,rotate=225] (b) at (1.7,1.3){};
\draw[edge=blue,out=0,in=225] (a) to (b);
\end{tikzpicture}