ピーターセングラフを電圧グラフとして描画する

ピーターセングラフを電圧グラフとして描画する

私はピーターセン グラフの電圧グラフ構成を説明しようとしています。実際には、これは次のことを意味します。

  • 外側のサイクルには時計回りに (a,0)、...、(a,4) のラベルが付けられ、円弧はその順序で配置されます。
  • 内側のサイクルには、時計回りに (b,0)、...、(b,4) のラベルが付けられ、円弧 (b,0) -> (b,2)、(b,1) -> (b,3)、(b,2) -> (b,4)、(b,3) -> (b,0) が付きます。
  • 各 (a,i) は対応する (b,i) に (その方向に) 結合されます。

grpetersen マクロと次のコードを使用すると、これをほぼ実現できます。

\begin{tikzpicture}[->,>=triangle 45,rotate=90,scale=1.2,style=thick]
  \newcommand{\aset}[2]{$\{#1,#2\}$}
  \tikzset{VertexStyle/.style={draw,rectangle}}
  \SetVertexNoLabel
  \SetVertexMath
  \SetUpVertex[MinSize=30pt]
  \grPetersen[RA=3,RB=1.5]
%  \SetUpEdge{style={->-}}
  \AssignVertexLabel{a}{\textsl{(a,0)},\textsl{(a,4)},\textsl{(a,3)},\textsl{(a,2)},\textsl{(a,1)}}
  \AssignVertexLabel{b}{\textsl{(b,0)},\textsl{(b,4)},\textsl{(b,3)},\textsl{(b,2)},\textsl{(b,1)}}
\end{tikzpicture}

しかし、外側のサイクルの円弧は間違った方向を向いており、他の正しい方向の円弧を変更せずにそれらを変更する方法がわかりません。

ご提案があれば、ぜひお聞かせください。


これは tkzgraph/berge の一部です - Altermundus の「名前付きグラフのプロット」を参照してください。ここに上記のコードを含む最小限のドキュメントがあります。

\documentclass{article}
\usepackage{tkz-graph}
\usepackage{tkz-berge}
\begin{document}
\begin{tikzpicture}[->,>=triangle 45,rotate=90,scale=1.2,style=thick]
  \newcommand{\aset}[2]{$\{#1,#2\}$}
  \tikzset{VertexStyle/.style={draw,rectangle}}
  \SetVertexNoLabel
  \SetVertexMath
  \SetUpVertex[MinSize=30pt]
  \grPetersen[RA=3,RB=1.5]
%  \SetUpEdge{style={->-}}
  \AssignVertexLabel{a}{\textsl{(a,0)},\textsl{(a,4)},\textsl{(a,3)},\textsl{(a,2)},\textsl{(a,1)}}
  \AssignVertexLabel{b}{\textsl{(b,0)},\textsl{(b,4)},\textsl{(b,3)},\textsl{(b,2)},\textsl{(b,1)}}
\end{tikzpicture}
\end{document}

答え1

ここに解決策があるかもしれません。私は定義したマクロを修正しましたtkz-berge.styより良い方法は学ぶことですtkz-ベルゲまたは学ぶティックズ独自のマクロを作成することができます。コード内にいくつかのアイデアがあります。tkz-ベルゲしかし、文書も見てください名前付きグラフいくつかの例を見つける 名前付きグラフ

注意:tkz-bergeはtkz-graphとtikzをロードします

\documentclass{article}
\usepackage{tkz-berge} 
\makeatletter

\renewcommand*{\grPetersen}[1][]{%
\begingroup%
    \setkeys[GR]{cl}{#1}%
        \begin{scope}[<-]
            \grCycle[#1]{5}%     
        \end{scope}
        \edef\tkzb@rtemp{\cmdGR@cl@RB}
        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
        \grStartwo[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{2}
        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{5} 
\endgroup%
}  
\makeatother


\begin{document}
\begin{tikzpicture}[->,>=triangle 45,rotate=90,scale=1.2,style=thick]
  \newcommand{\aset}[2]{$\{#1,#2\}$}
  \tikzset{VertexStyle/.style={draw,rectangle}}
  \SetVertexNoLabel
  \SetVertexMath
  \SetUpVertex[MinSize=30pt]
  \grPetersen[RA=3,RB=1.5]
  \AssignVertexLabel{a}{\textsl{(a,0)},\textsl{(a,4)},\textsl{(a,3)},\textsl{(a,2)},\textsl{(a,1)}}
  \AssignVertexLabel{b}{\textsl{(b,0)},\textsl{(b,4)},\textsl{(b,3)},\textsl{(b,2)},\textsl{(b,1)}}
\end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

関連情報