我开始使用 Euclide 包。我想画一个五边形的正多边形。为什么编译不通过?错误在哪里?
\documentclass[border=12pt]{standalone}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}[scale=.8]
\tkzDefPoint(0,0){O}
\tkzDefPoint(5,0){A}
\tkzDrawCircle(O,A)
\foreach \i in {0,...4,}{
\tkzDefPointBy[rotation = center O angle 72+72*\i](A) \tkzGetPoint{a\i}
}
\tkzDrawPolygon[color=red!50!Gold,ultra thick]{a0,a1,a2,a3,a4}
\tkzDrawPoint[color=red!50!Gold,size=10]{a0,a1,a2,a4}
\end{tikzpicture}
\end{document}
答案1
以下是错误列表:
- 您输入了错误
\foreach
的值,其中0,...4,
当然是错误的,应该替换为0,...,4
。 - 命令
\tkzDrawPolygon
需要\tkzDrawPoint
普通括号,而不是花括号。 - 当类似命令
\tkzDrawPoint
列出多个坐标时,该命令将变为“复数”,因此您有\tkzDrawPoints
。 - 颜色
Gold
未定义,因此需要添加\usepackage[svgnames]{xcolor}
。
输出
代码
\documentclass[border=12pt]{standalone}
\usepackage[svgnames]{xcolor}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}[scale=.8]
\tkzDefPoint(0,0){O}
\tkzDefPoint(5,0){A}
\tkzDrawCircle(O,A)
\foreach \i in {0,...,4}{%
\tkzDefPointBy[rotation=center O angle 72+72*\i](A) \tkzGetPoint{a\i}
}
\tkzDrawPolygon[color=red!50!Gold,ultra thick](a0,a1,a2,a3,a4)
\tkzDrawPoints[color=red!50!Gold,size=10](a0,a1,a2,a4)
\end{tikzpicture}
\end{document}