如何绘制一个内部有星号的八边形?

如何绘制一个内部有星号的八边形?
\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}

在此处输入图片描述

相关内容