我是 Tikz 的新手,我已经搜索过但没有找到我想要的东西(应该特别简单)。
我有一个交换图,用于说明图追逐。我想要一个从 B 到 C' 的弯曲箭头,但我需要它绕着图的外部,绕着 B' 弯曲。同样,我需要一个从 B 到 C' 的弯曲箭头,但绕着 C 弯曲。我无法将箭头移出图的内部。指定这一点的简单方法是什么?
此外,是否有一种通用的方法可以告诉 Tikz 如何向箭头添加曲线,即如果我想做与上面相同的事情,但然后让箭头从 B 到 C' 整个过程都“波浪形”或指定从一个节点到另一个节点的曲线和循环的任意路径?
\[
\begin{tikzpicture}
\matrix (m) [matrix of math nodes, row sep=3em,
column sep=3em, text height=1.5ex, text depth=0.25ex]
{ B & C \\
B' & C' \\ };
\path[->]
(m-1-1) edge node[above] {$g$} (m-1-2)
edge node[left] {$\beta$} (m-2-1)
edge [bend left=30] (m-2-2)
edge [bend right=15] (m-2-2);
\path[->]
(m-1-2) edge node[right] {$\gamma$} (m-2-2);
\path[->]
(m-2-1) edge node[below] {$g'$} (m-2-2);
\end{tikzpicture}
\]
答案1
这是一个可能的解决方案,使用looseness=xx
和bend left=xx
,对于波浪线和箭头,这里snake it
定义了一个称为的样式,
代码
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}% http://ctan.org/pkg/stackrel
\usepackage{tikz,siunitx}
\usetikzlibrary{matrix,positioning,calc}
\usetikzlibrary{decorations.pathmorphing}
\tikzset{snake it/.style={-stealth,
decoration={snake,
amplitude = .4mm,
segment length = 2mm,
post length=0.9mm},decorate}}
\begin{document}
\[
\begin{tikzpicture}
\matrix (m) [matrix of nodes, row sep=3em,
column sep=3em, text height=1.5ex, text depth=0.25ex]
{ B & C \\
$B'$ & $C'$ \\ };
\path[->]
(m-1-1) edge node[above] {$g$} (m-1-2)
edge node[left] {$\beta$} (m-2-1)
edge [bend left=90,looseness=2,snake it] (m-2-2)
edge [bend right=90,looseness=2] (m-2-2);
\path[->]
(m-1-2) edge node[right] {$\gamma$} (m-2-2);
\path[->]
(m-2-1) edge node[below] {$g'$} (m-2-2);
\end{tikzpicture}
\]
\end{document}