Рисование направленных гиперребер с помощью 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}

Я попробовал добавить-> как вариант кtikzpicture, но это привело к появлению стрелок не только к целевому набору, но и к исходному узлу.

решение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}

Связанный контент