tikz foreach 计算

tikz foreach 计算

我正在尝试使用 tikz foreach 进行一个简单的计算,但它做了一些非常令人惊讶的事情:

\documentclass{article} 
\usepackage{tikz} 
\usepackage[active,tightpage]{preview}
\setlength\PreviewBorder{2pt}
\begin{document} 
\begin{preview}
\def\radius{10}
\def\step{6}

\begin{tikzpicture}
\def\stepsize{\number\numexpr180/\step\relax}

\foreach \Angle in {0.5\stepsize,1.5\stepsize,...,180} {\node [right] at (\Angle:10) {\Angle};}

\end{tikzpicture}
\end{preview}
\end{document}

由此我预计输出从 15,45,...,180,但输出如下。 在此处输入图片描述

这是一个非常非常小的步长。如果我写 0.5*\stepsize,它会告诉我这是一个非法单位。当然我可以通过定义一半和 1.5 步长来解决这个问题。你知道为什么会发生这种情况吗?

答案1

问题来自于.5和的连接,\stepsize使得。.5301.530

在此处输入图片描述

\documentclass{article} 
\usepackage{tikz} 
\usepackage[active,tightpage]{preview}
\setlength\PreviewBorder{2pt}
\begin{document} 
\begin{preview}
\def\radius{10}
\def\step{6}


\def\stepsize{\number\numexpr180/\step\relax}

\pgfmathtruncatemacro{\first}{0.5*\stepsize}
\pgfmathtruncatemacro{\step}{1.5*\stepsize}

\stepsize

\begin{tikzpicture}

\foreach \Angle in {\first,\step,...,180} {\node [right] at (\Angle:10) {\Angle};}

\end{tikzpicture}
\end{preview}
\end{document}

evaluate

在此处输入图片描述

\documentclass{article} 
\usepackage{tikz} 
\usepackage[active,tightpage]{preview}
\setlength\PreviewBorder{2pt}
\begin{document} 
\begin{preview}
\def\radius{10}
\def\step{30}

\def\First{15}
\pgfmathtruncatemacro{\NbStep}{(180-\First)/\step}


\begin{tikzpicture}

\foreach \i [evaluate=\i as \Angle using int(\First+\step*\i)]
    in {0,1,...,\NbStep} {%
    \node [right] at (\Angle:\radius) {\Angle} ;
}

\end{tikzpicture}
\end{preview}
\end{document}

相关内容