我正在尝试使用 for 循环用该包制作一个时钟tkz-euclide
。我尝试让它工作,但它总是出错。这是我的 MWE
\documentclass[tikz]{standalone}
\usepackage{tkz-euclide}
%\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def \radius{5cm}
\def \n{12}
\tkzDefPoint(0,0){O}
\tkzDrawCircle[R](O,\radius)
% \tkzDefPoint(90-360/12:5){B}
% \tkzDefPoint(90-360/12:4){C}
% \tkzDrawSegment(B,C)
% \tkzLabelPoint[below](C){1}
% \tkzDrawPoint(B)
\foreach \i in {1,...,\n}
{
\tkzDefPoint(90-1*(360/\n):\radius){t_\i}
\tkzDrawPoint(t_\i)
}
\end{tikzpicture}
\end{document}
似乎无法理解\tkzDefPoint
命令中的角度。有什么建议吗?
答案1
您得到的错误是! FP error: Illegal character c found in float number!.
。c
问题是 中的5cm
。 看起来您需要一个无单位数字,因此cm
从 的定义中删除 。不过\n
您需要将其重新添加到 中。\tkzDrawCircle
当然,您不想\i
在1
循环中进行乘法。
\documentclass[tikz]{standalone}
\usepackage{tkz-euclide}
%\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def \radius{5}
\def \n{12}
\tkzDefPoint(0,0){O}
\tkzDrawCircle[R](O,\radius cm)
% \tkzDefPoint(90-360/12:5){B}
% \tkzDefPoint(90-360/12:4){C}
% \tkzDrawSegment(B,C)
% \tkzLabelPoint[below](C){1}
% \tkzDrawPoint(B)
\foreach \i in {1,...,\n}
{
\tkzDefPoint(90-\i*360/\n:\radius){t_\i}
\tkzDrawPoint(t_\i)
}
\end{tikzpicture}
\end{document}