使用 tikz,我如何绘制面积为 7 的七边形?

使用 tikz,我如何绘制面积为 7 的七边形?

如何使用 tikz 绘制面积为 7 平方单位的正七边形?

答案1

快速搜索指向shapes.geometric。我让你自己计算以找到合适的半径 ;-)

在此处输入图片描述

\documentclass{article}

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

\begin{document}

{\def\PolyRadius{2cm}
  \begin{tikzpicture}
    % Remove next line to remove the red circle
    \draw[red] (0,0) circle [radius=\PolyRadius];
    \node[regular polygon,draw,regular polygon sides = 7,minimum size=2*\PolyRadius] at (0,0) {};
  \end{tikzpicture}
}

\end{document}

答案2

n对于边长为的正多边形S,从中心到顶点的长度r公式

在此处输入图片描述

foreachTikZ 代码在一个命令中使用\draw。这里的单位是cm- TikZ 的默认单位。

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\usepackage{amsmath}
\begin{document}
% for maths
\begin{tikzpicture}
\node{$S=\dfrac{nr^2\sin\left(\frac{360}{n}\right)}{2}$ \quad implies\quad $r=\sqrt{\dfrac{2S}{n\sin\left(\frac{360}{n}\right)}}$};
\end{tikzpicture}

\begin{tikzpicture}
\def\n{7}    % number of sides of a heptagon
\def\S{7}    % the area of that heptagon
\pgfmathsetmacro{\k}{360/\n}
\pgfmathsetmacro{\r}{(sqrt(2*\S))/(\n*sin(\k))}
\draw[violet] (90:\r) 
foreach \i[parse=true] in {1,...,\n-1}  {--({90+\k*\i}:\r)}--cycle;
\end{tikzpicture}
\end{document}

相关内容