TikZ 图:指定边缘目标锚点

TikZ 图:指定边缘目标锚点

我有以下代码:

\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle}] { a -> {b, long node name} };
\end{document}

输出结果如下:MWE 输出:a -> {b,长节点名称}

我希望边“a”->“长节点名称”不是从东到北,而是从南到西。这是否可行,同时仍仅使用一个 \graph 调用?还是我需要在额外的命令中手动指定该边?

(也就是说,我的问题与问题中的问题基本相同tikz 中的边缘锚点,但我想使用 TikZ 的图形绘制功能,而不是手动创建边。)

答案1

要获取节点的西锚点,long node name您可以使用right anchor=west

代码

\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle},right anchor=west] { a -> {b, long node name} };
\end{document}

结果

在此处输入图片描述

答案2

我想,这就是你想要的。 在此处输入图片描述

我从未使用过\graph。我做类似您所要求的事情的自然方式是使用\nodes 和anchors,如下所示:

\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}

当然,你必须在节点之间设置适当的距离;否则,箭头可能会与矩形相交,但除了改变箭头外没有其他办法可以避免这种情况。此外,你可以使用弯曲的箭头。

相关内容