![tikz:边缘循环和旋转](https://linux22.com/image/288261/tikz%EF%BC%9A%E8%BE%B9%E7%BC%98%E5%BE%AA%E7%8E%AF%E5%92%8C%E6%97%8B%E8%BD%AC.png)
以下是我的例子:
\documentclass{standalone}
\usepackage{tikz}
\def\test#1{\node[circle,draw](#1) at (0,0) {#1}; \draw[->] (#1) edge[in=40,out=-40,loop] ();}
\begin{document}
\begin{tikzpicture}
\test{A}
\begin{scope}[shift={(2,0)},rotate=90]
\test{B}
\end{scope}
\end{tikzpicture}
\end{document}
以下是我得到的结果:
B 只是在具有旋转的范围内的 A。我想了解如何在这样的范围内修复我的循环,以便它们可以按预期进行移动/缩放/旋转:我希望 B 与旋转后的 A 完全一样。
答案1
代码
我不知道为什么,但out
角度似乎不受旋转的影响。添加选项transform shape
似乎可以解决问题,但文本会旋转和缩放... 作为一种丑陋的解决方法,您可以第一次用白色绘制节点。不过,您仍然会遇到缩放问题。
\documentclass{standalone}
\usepackage{tikz}
\def\test#1{%
\node[white,circle,draw,transform shape](#1) at (0,0) {#1};
\node[circle,draw] at (0,0) {#1};%
\draw[->] (#1) edge[in=40,out=-40,loop] ();%
}
\begin{document}
\begin{tikzpicture}
\test{A}
\begin{scope}[shift={(2,0)},rotate=90]
\test{B}
\end{scope}
\end{tikzpicture}
\end{document}