这个问题是Denis Bitouzé 的问题
这是他的代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary {matrix}
\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes]
{
1-1 & 1-2 & 1-3 \\
& & \\
3-1 & 3-2 & 3-3 \\
};
\draw[red,->] (magic-1-1) |- (magic-2-2.center) -| (magic-3-3);
\end{tikzpicture}
\end{document}
我对下面这行代码特别感兴趣:
\draw[red,->] (magic-1-1) |- (magic-2-2.center) -| (magic-3-3);
矩阵 (mat) 中的第二行是为了在节点 (magic-1-1) 和节点 (magic-3-3) 之间绘制一条连续的双旋转线而创建的。我不想这样做,因为这似乎是一行不必要的代码。我也不想使用名为 的包
ext.paths.ortho
。这是由于以下事实:我不喜欢在 Latex 中使用太多的包,因为语法可能会让我感到困惑。
关于如何仅使用原始乳胶代码创建图表,我有以下线索:
- 使用 calc 包计算正确的坐标。
我的问题是:
在 tikz 矩阵中的两个节点之间创建双旋转连续线的最佳方法是什么?
答案1
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{matrix, calc}
\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes, nodes in empty cells=true]
{
1-1 & 1-2 & 1-3 \\
& & \\
3-1 & 3-2 & 3-3 \\
};
\draw[red,->] (magic-1-1) |- ($(magic-1-1)!0.5!(magic-3-3)$) -| (magic-3-3);
\end{tikzpicture}
\end{document}
编辑:
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{matrix, calc}
\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes]
{
1-1 & 1-2 & 1-3 \\
2-1 & 2-2 & 2-3 \\
};
\draw[red,->] ([yshift=-4]magic-1-1.center) |- ($(magic-1-1)!0.5!(magic-2-3)$) -| ([yshift=3]magic-2-3.center);
\end{tikzpicture}
\end{document}