將 Petersen 圖繪製為電壓圖

將 Petersen 圖繪製為電壓圖

我試著說明彼得森圖的電壓圖結構。實際上,這意味著:

  • 外循環將以順時針方向標示為 (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}

在此輸入影像描述

相關內容