我想用tkz-graph
它来布置同心圆上的顶点循环。如果我有完整的循环,那么就可以很好地完成这项工作,但是因为我想排除一些边缘,所以我觉得我需要前一个包。我希望能够通过和宏tkz-berge
来实现类似于左侧子图(第一个 tikzpicture 环境)的东西。我相信这是一个失败的 MWE。tkz-graph
\Vertices*
\Edges
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tkz-berge}
\begin{document}
\begin{tikzpicture}[scale=0.45,rotate=22.5]
\GraphInit[vstyle=Simple]
\tikzset{VertexStyle/.append style={minimum size=3pt}}
\grCycle[RA=1.0,prefix=a,Math=true]{8}
\grCycle[RA=2.5,prefix=b,Math=true]{8}
\grCycle[RA=4.0,prefix=c,Math=true]{8}
\grCycle[RA=5.5,prefix=d,Math=true]{8}
\EdgeIdentity{a}{b}{8}
\EdgeIdentity{b}{c}{8}
\EdgeIdentity{c}{d}{8}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.45,rotate=18]
\GraphInit[vstyle=Simple]
\tikzset{VertexStyle/.append style={minimum size=3pt}}
\tikzset{node distance = 1.5cm}
\Vertices{circle}{A,B,C,D,E}
\begin{scope}
\tikzset{VertexStyle/.append style={node distance = 3cm}}
% \tikzstyle{every node} = [node distance = 3cm]
\Vertices*{circle}{F,G,H,I,J}
\end{scope}
\begin{scope}
\tikzset{VertexStyle/.append style={node distance = 4.5cm}}
% \tikzstyle{every node} = [node distance = 3cm]
\Vertices*{circle}{K,L,M,N,O}
\end{scope}
\end{tikzpicture}
\end{document}
从我读过的内容来看,答案可能适合我使用\SetGraphUnit{1.5}
,但出于其他原因,我不想将我的 texlive 安装升级到最新版本。有没有办法在同心圆上布局顶点,以便我只能添加我需要的那些边?
答案1
也许我不明白你的问题,但\grEmptyCycle
如果你想要没有边缘的循环,你可以使用它。
然后你可以混合使用 tkz-berge 和 tkz-graph 的宏。我不明白这个问题和 ? 之间的联系。\SetGraphUnit
这个宏修改了用于定义顶点之间距离的单位。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tkz-berge}
\begin{document}
\begin{tikzpicture}[scale=0.45,rotate=22.5]
\GraphInit[vstyle=Simple]
\tikzset{VertexStyle/.append style={minimum size=3pt}}
\grEmptyCycle[RA=1.0,prefix=a,Math=true]{8}
\grEmptyCycle[RA=2.5,prefix=b,Math=true]{8}
\grEmptyCycle[RA=4.0,prefix=c,Math=true]{8}
\grEmptyCycle[RA=5.5,prefix=d,Math=true]{8}
\end{tikzpicture}
\end{document}
备注:使用 tkz-berge 有一些宏可以绘制边序列,如 a0-a1-a2-a4 等,并且您可以排除一些边。
可以使用 tikz-graph 中的宏。您可以将选项 circle 与 Vertice 一起使用。
答案2
仅用于使用 PSTricks 进行打字练习。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node,pst-plot,pgfmath}
\psset{plotpoints=9,showpoints}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\foreach \c[count=\r from 1] in {A,...,D}{\curvepnodes{0}{360}{\r\space t PtoC}{\c}\psnline(0,8){\c}}
\foreach \i in {0,...,8}{\psline(A\i)(B\i)(C\i)(D\i)}
\end{pspicture}
\end{document}