TikZ で有向ハイパーエッジを描く

TikZ で有向ハイパーエッジを描く

私は現在、コンピュータサイエンスの学期プロジェクトでシンボリック依存関係グラフのモデルチェックに取り組んでおり、できれば TikZ を使用して依存関係グラフを描画する簡単な方法が切実に必要です。

私の問題は、これただし、弧を方向付ける必要があります。

ハイパーエッジは、 がソース ノードで がターゲットセットであるeタプルです。 の各要素は、 が負でない整数またはパラメータで がターゲット ノードであるタプルです。e = (v, T)vTTt = (w, t)wt

次の例(ここ) は、弧を方向付ける必要があることを除いて、まさに必要なことを実行します。

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\hyperedge}[4][180]{
     \draw (#2.#1) ++(#1:.5)  edge (#2) edge (#3) edge (#4);    
}

\begin{document}
\begin{tikzpicture}[
    y=.7cm, x=1cm,
    every edge/.append style={thick}
]

\node (c) at (0,0) {c};
\node (a) at (1,1) {d};
\node (b) at (1,-1) {e};


\hyperedge[0]{c}{b}{a}
\end{tikzpicture}
\end{document}

->オプションとして追加してみましたティクズ画像しかし、これにより、ターゲット セットだけでなくソース ノードへの矢印も生成されました。

答え1

この特定のケースでは、\hypergraphコマンドを次のように変更することができます。

\newcommand{\hyperedge}[4][180]{
     \draw (#2.#1) ++(#1:.5)  edge (#2) edge[->] (#3) edge[->] (#4);    
}

edgeこれにより、ターゲット ノードにつながる矢印が 2 つに追加されます。

ここに画像の説明を入力してください

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\hyperedge}[4][180]{
     \draw (#2.#1) ++(#1:.5)  edge (#2) edge[->] (#3) edge[->] (#4);    
}

\begin{document}
\begin{tikzpicture}[
    y=.7cm, x=1cm,
    every edge/.append style={thick}
]

\node (c) at (0,0) {c};
\node (a) at (1,1) {d};
\node (b) at (1,-1) {e};


\hyperedge[0]{c}{b}{a}
\end{tikzpicture}
\end{document}

関連情報