![TikZ 图:指定边缘目标锚点](https://linux22.com/image/327742/TikZ%20%E5%9B%BE%EF%BC%9A%E6%8C%87%E5%AE%9A%E8%BE%B9%E7%BC%98%E7%9B%AE%E6%A0%87%E9%94%9A%E7%82%B9.png)
我有以下代码:
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle}] { a -> {b, long node name} };
\end{document}
输出结果如下:
我希望边“a”->“长节点名称”不是从东到北,而是从南到西。这是否可行,同时仍仅使用一个 \graph 调用?还是我需要在额外的命令中手动指定该边?
(也就是说,我的问题与问题中的问题基本相同tikz 中的边缘锚点,但我想使用 TikZ 的图形绘制功能,而不是手动创建边。)
答案1
答案2
我从未使用过\graph
。我做类似您所要求的事情的自然方式是使用\node
s 和anchor
s,如下所示:
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node[draw] (a) {a};
\node[draw,anchor=west] (b) at ($(a)+(1cm,0)$) {b};
\node[draw,anchor=west] (c) at ($(a)+(1cm,-1cm)$) {long node name};
\draw[->] (a) -- (b);
\draw[->] (a.south) -- (c.west);
\end{tikzpicture}
\end{document}
当然,你必须在节点之间设置适当的距离;否则,箭头可能会与矩形相交,但除了改变箭头外没有其他办法可以避免这种情况。此外,你可以使用弯曲的箭头。