Petersen 그래프의 전압 그래프 구성을 설명하려고 합니다. 실제로 이는 다음을 의미합니다.
- 외부 사이클은 시계 방향(a,0),...,(a,4)으로 표시되며 호는 해당 순서대로 표시됩니다.
- 내부 사이클은 호 (b,0) -> (b,2), (b,1) -> (b,3)으로 시계 방향으로 (b,0),...,(b,4)로 레이블이 지정됩니다. (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의 일부입니다. Alttermundus의 "명명된 그래프 그리기"를 참조하세요. 다음은 위의 코드를 포함하는 최소한의 문서입니다.
\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-berge아니면 배우려고틱즈나만의 매크로를 만들 수 있습니다. 코드 내에서 몇 가지 아이디어를 찾을 수 있습니다.tkz-berge하지만 너도 문서를 봐명명된 그래프몇 가지 예를 찾으려면 명명된 그래프
비고: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}