Ich versuche, die Konstruktion des Spannungsdiagramms des Petersen-Diagramms zu veranschaulichen. In der Praxis bedeutet dies:
- Der äußere Zyklus wird im Uhrzeigersinn mit (a,0),...,(a,4) beschriftet, wobei die Bögen in dieser Reihenfolge ausgerichtet sind.
- Der innere Zyklus wird im Uhrzeigersinn mit (b,0),...,(b,4) und den Bögen (b,0) -> (b,2), (b,1) -> (b,3), (b,2) -> (b,4) und (b,3) -> (b,0) beschriftet.
- Jedes (a,i) wird mit dem entsprechenden (b,i) (in dieser Richtung) verbunden.
Mit dem Makro grpetersen und dem folgenden Code kann ich dies fast erreichen:
\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}
Allerdings sind die Bögen im äußeren Zyklus in die falsche Richtung ausgerichtet und ich sehe keine Möglichkeit, sie zu ändern, ohne die anderen, richtig ausgerichteten Bögen zu ändern.
Ich bin für jeden Vorschlag sehr dankbar.
Es ist Teil von tkzgraph/berge – siehe Altermundus' „Plotting named graphs“. Hier ist ein minimales Dokument, das den obigen Code enthält.
\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}
Antwort1
Hier vielleicht eine Lösung. Ich habe mein Makro, das ich intkz-berge.styDer bessere Weg ist zu lernentkz-bergeoder lernentikzum eigene Makros zu erstellen. Einige Ideen finden Sie im Code vontkz-bergeaber Sie sehen sich auch das Dokument anBenannte Graphenum einige Beispiele zu finden Benannte Graphen
Bemerkung: tkz-berge lädt tkz-graph und 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}