如何使用 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
为公式
foreach
TikZ 代码在一个命令中使用\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}