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 呼び出しを 1 つだけ使用しても可能ですか? それとも、追加のコマンドでそのエッジを手動で指定する必要がありますか?

(つまり、私は基本的に質問と同じ問題を抱えているのです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 とs を使用することです。anchor

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

もちろん、ノード間に適切な距離を設定する必要があります。そうしないと、矢印の先が長方形と交差する可能性がありますが、矢印の先を変更する以外にこれを回避する方法はありません。さらに、曲線矢印を使用することもできます。

関連情報