使用 Latex 绘制带有度数标签的五边形

使用 Latex 绘制带有度数标签的五边形

我想用 Latex 画一个正五边形,两个顶点之间的夹角为 72 度。如果它看起来像下面的图片,那就太好了:

在此处输入图片描述

我目前有以下乳胶代码:

\usetikzlibrary{shapes.geometric}
\centering
\begin{tikzpicture}[mystyle/.style={draw,shape=circle,fill=blue}]
\def\ngon{5}
\node[regular polygon,regular polygon sides=\ngon,minimum size=3cm] (p) {};
\foreach\x in {1,...,\ngon}{\node[mystyle] (p\x) at (p.corner \x){};}
\foreach\x in {1,...,\numexpr\ngon-1\relax}{
\foreach\y in {\x,...,\ngon}{
\draw (p\x) -- (p\y);
} }
\end{tikzpicture}

但我不知道如何重新格式化它,以便它们不再连接每个顶点,而是全部指向一个中心点。我还想能够添加度数。如果有人有任何建议,那将非常有帮助!

答案1

您可以使用(p.center)绘制到中间的线条。请注意,您应该shorten根据线条粗细绘制径向线段,以避免将它们绘制到多边形之外。这是一个允许您选择边数的宏。

\myshape{4}\quad\myshape{5}\quad\myshape{6}

在此处输入图片描述

可选参数允许任何 Ti要添加的 Z 选项,例如\myshape[scale=2, transform shape, red, font=\sffamily\tiny]{10}

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric}

\newcommand{\myshape}[2][]{%
    \begin{tikzpicture}[font=\scriptsize, #1]
        \pgfmathsetmacro\ang{frac(360/#2)==0?{int(360/#2)}:{360/#2}}
        \node[draw, regular polygon, regular polygon sides=#2, minimum size=3cm] (p) {};
        \foreach \n in {1,...,#2} {\draw[shorten >=\pgflinewidth](p.center)--(p.corner \n);}
        \node[draw, circle, minimum size=5mm, label=below:{\ang\textdegree}]{};
    \end{tikzpicture}%
}

\begin{document}

\myshape{4}\quad\myshape{5}\quad\myshape{6}\vspace{2cm}

\myshape[scale=2, transform shape, red, font=\sffamily\tiny]{10}

\end{document}

的复杂表达式是为了\ang避免像60.0角度为整数时那样的角度。

相关内容