我试图说明彼得森图的电压图构造。实际上,这意味着:
- 外层循环将被标记为顺时针 (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-berges.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}