使用 TikZ 绘制有向超边

使用 TikZ 绘制有向超边

我目前正在为计算机科学学期的项目进行符号依赖图的模型检查,迫切需要一种简单的方法来绘制依赖图,最好使用 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}

我尝试添加->一个选项tikz图片,但这导致箭头不仅指向目标集,还指向源节点。

答案1

对于这种特定情况,你可以修改\hypergraph命令以读取

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

这将向两个edges 添加指向目标节点的箭头。

在此处输入图片描述

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

相关内容