\documentclass {article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\foreach \n in {8}
\tikz\foreach \i in {1,...,\n}
\fill (\i*360/\n:1) coordinate (n\i) circle(2 pt)
\ifnum \i>0 foreach \j in {\i+1,\i+4}{(n\i) edge (n\j)} \fi;
\end{document}
这导致:
我想制作一个具有这种边的八边形,但我不知道为什么 \i 和 \i+1 之间的边没有显示出来。任何建议都很好!
答案1
欢迎!由于您正在加载shapes.geometric
,您可以这样做
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[dot/.style={circle,fill,inner sep=0pt,minimum size=4pt}]
\draw node[regular polygon,regular polygon sides=8,draw,minimum size=2cm]
(p8){}
foreach \X[count=\Y] in {5,...,8} {(p8.corner \X) node[dot](n-\X){}
-- (p8.corner \Y) node[dot](n-\Y){} };
\end{tikzpicture}
\end{document}
然而,在我看来,还有更好的工具可用:graphs
库。虽然这个网站上的示例确实不如上面的那么多(上面出现了几次,略有不同),但我认为如果你真的喜欢图形绘制,这个会更强大。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{graphs,graphs.standard}
\begin{document}
\begin{tikzpicture}
\begin{scope}[nodes={circle,fill,inner sep=0pt,minimum size=4pt}]
\graph[empty nodes] {
{subgraph C_n [n=8,radius=1cm, counterclockwise] --
0[coordinate]};
};
\end{scope}
\end{tikzpicture}
\end{document}