tikz 节点矩阵中节点之间的连续线

tikz 节点矩阵中节点之间的连续线

在下面的tikz节点矩阵中,红线没有画在(magic-2-2)节点上。我怎样才能让它从(magic-1-1)(magic-3-3)节点连续,并穿过(“踩踏”)节点(magic-2-2)

\documentclass{article}
\usepackage{tikz}

\usetikzlibrary {matrix}

\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes]
{
1-1 & 1-2 & 1-3 \\
2-1 & 2-2 & 2-3 \\
3-1 & 3-2 & 3-3 \\
};
\draw[red,->] (magic-1-1) |- (magic-2-2) -| (magic-3-3);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

如果您仅使用节点名称作为坐标规范,TikZ 将自动选择节点边界上的一个点,该点位于从节点中心看到的连接线方向上。如果您希望线实际上穿过节点的中心,则需要使用锚点center

\draw[red,->] (magic-1-1) |- (magic-2-2.center) -| (magic-3-3);

您可以在此处使用任何锚点,因为它将阻止 TikZ 自动选择边界上的点。(在这种情况下,和都westeast导致相同的结果。)

代码

\documentclass[tikz, convert={density=150}]{standalone}
\usetikzlibrary {matrix}
\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes]{
  1-1 & 1-2 & 1-3 \\
  2-1 & 2-2 & 2-3 \\
  3-1 & 3-2 & 3-3 \\
};
\draw[red,->] (magic-1-1) |- (magic-2-2.center) -| (magic-3-3);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

答案2

使用@Qrrbrbirlbel 的奇妙ext.paths.ortho库,您可以一次性画出一条线,而无需中间停下来:

\documentclass{article}
\usepackage{tikz}

\usetikzlibrary{matrix}
\usetikzlibrary{ext.paths.ortho}

\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes]
{
1-1 & 1-2 & 1-3 \\
2-1 & 2-2 & 2-3 \\
3-1 & 3-2 & 3-3 \\
};
\draw[red,->] (magic-1-1) |-| (magic-3-3);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容