В настоящее время я работаю над проверкой моделей символических графов зависимостей для моего семестрового проекта по информатике и мне крайне необходим простой способ рисования графов зависимостей, желательно с использованием 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);
}
что добавит стрелки к двум из edge
s, ведущим к целевым узлам.
\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}