Tikz-Fehler in der Kurve zu Knoten

Tikz-Fehler in der Kurve zu Knoten

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:

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

verwandte Informationen