Dibujar un gráfico de Petersen como un gráfico de voltaje

Dibujar un gráfico de Petersen como un gráfico de voltaje

Estoy tratando de ilustrar la construcción del gráfico de voltaje del gráfico de Petersen. En la práctica, esto significa:

  • El ciclo exterior se etiquetará en el sentido de las agujas del reloj (a,0),...,(a,4) con arcos orientados en ese orden;
  • El ciclo interno se etiquetará en el sentido de las agujas del reloj (b,0),...,(b,4) con arcos (b,0) -> (b,2), (b,1) -> (b,3), (b,2) -> (b,4) y (b,3) -> (b,0); y
  • Cada (a,i) se unirá al correspondiente (b,i) (en esa dirección).

Casi puedo lograr esto usando la macro grpetersen y el siguiente código:

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

Sin embargo, los arcos del ciclo exterior están orientados en la dirección incorrecta y no veo cómo cambiarlos sin cambiar los otros arcos orientados correctamente.

Cualquier sugerencia sería muy apreciada.


Es parte de tkzgraph/berge; consulte "Trazado de gráficos con nombre" de Altermundus. Aquí hay un documento mínimo que contiene el código anterior.

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

Respuesta1

Aquí quizás haya una solución. Modifiqué mi macro que definí entkz-berge.sty. La mejor manera es aprender.tkz-bergeo aprendertikzpara crear tus propias macros. Puedes encontrar algunas ideas dentro del código detkz-bergepero también miras el documentoGráficos con nombrepara encontrar algunos ejemplos Gráficos con nombre

Observación: tkz-berge carga tkz-graph y 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}

ingrese la descripción de la imagen aquí

información relacionada