TikZ를 사용하여 방향성 하이퍼에지 그리기

TikZ를 사용하여 방향성 하이퍼에지 그리기

저는 현재 컴퓨터 공학 학기 프로젝트를 위한 기호 종속성 그래프의 모델 검사 작업을 하고 있으며, TikZ를 사용하여 종속성 그래프를 그리는 쉬운 방법이 절실히 필요합니다.

내 문제는 다음과 다소 관련이 있습니다.이것, 하지만 방향을 지정하려면 호가 필요합니다.

하이퍼 에 지는 소스 노드이자 대상 세트인 e튜플입니다 . 의 각 요소 는 음이 아닌 정수 또는 매개변수이고 대상 노드인 튜플 입니다 .e = (v, T)vTTt = (w, t)wt

다음 예(발견됨여기)는 지시할 호가 필요한 것을 제외하고 내가 필요한 것을 정확히 수행합니다.

\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그러면 대상 노드로 이어지는 두 개의 화살표에 화살표가 추가됩니다 .

여기에 이미지 설명을 입력하세요

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

관련 정보