![TikZ で有向ハイパーエッジを描く](https://rvso.com/image/286368/TikZ%20%E3%81%A7%E6%9C%89%E5%90%91%E3%83%8F%E3%82%A4%E3%83%91%E3%83%BC%E3%82%A8%E3%83%83%E3%82%B8%E3%82%92%E6%8F%8F%E3%81%8F.png)
私は現在、コンピュータサイエンスの学期プロジェクトでシンボリック依存関係グラフのモデルチェックに取り組んでおり、できれば TikZ を使用して依存関係グラフを描画する簡単な方法が切実に必要です。
私の問題は、これただし、弧を方向付ける必要があります。
ハイパーエッジは、 がソース ノードで がターゲットセットであるe
タプルです。 の各要素は、 が負でない整数またはパラメータで がターゲット ノードであるタプルです。e = (v, T)
v
T
T
t = (w, t)
w
t
次の例(ここ) は、弧を方向付ける必要があることを除いて、まさに必要なことを実行します。
\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}