![Desenhando hiperarestas direcionadas com TikZ](https://rvso.com/image/286368/Desenhando%20hiperarestas%20direcionadas%20com%20TikZ.png)
Atualmente estou trabalhando com verificação de modelo de gráficos de dependência simbólica para meu projeto semestral em Ciência da Computação e preciso urgentemente de uma maneira fácil de desenhar gráficos de dependência, de preferência usando TikZ.
Meu problema está um pouco relacionado aesse, mas preciso que os arcos sejam direcionados.
Uma hiperborda e
é uma tupla e = (v, T)
onde v
está um nó de origem e T
é o conjunto de destino. Cada elemento T
é uma tupla t = (w, t)
onde w
é um número inteiro não negativo ou um parâmetro e t
é um nó de destino.
O exemplo a seguir (encontradoaqui) faz exatamente o que eu preciso, exceto que preciso que os arcos sejam direcionados.
\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}
Eu tentei adicionar ->
como uma opção aoimagem tikz, mas isso resultou em setas não apenas para o conjunto de destino, mas também para o nó de origem.
Responder1
Para este caso específico você pode modificar o \hypergraph
comando para ler
\newcommand{\hyperedge}[4][180]{
\draw (#2.#1) ++(#1:.5) edge (#2) edge[->] (#3) edge[->] (#4);
}
que adicionará setas a dois dos edge
s, aqueles que levam aos nós de destino.
\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}