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}

當然,你必須設定節點之間適當的距離;如果不是這樣,箭頭可能會與矩形相交,但是除了改變箭頭之外沒有辦法避免這種情況。此外,您可以使用彎曲的箭頭。

相關內容