在 TikZ 中对坐标进行舍入

在 TikZ 中对坐标进行舍入

我正在尝试将动画的\multiframe命令与 TikZ\fill命令结合起来,以便在每四帧中,我的矩形的顶部移动一个单位:

\multiframe{20}{rya=10+-0.25}{
  \fill[green!10] (4,0) rectangle (6,\rya);
}

我目前的方法的问题是,它不是每四帧调整矩形一个单位,而是每四帧调整一个单位。四分之一单位每个框架。

我所追求的是某种可以应用的“floor”函数\rya,或者任何其他可以实现相同结果的替代方法。

(还有一些其他的东西同时在进行动画处理,阻止我简单地降低帧速率并使用iya=10+-1rya=10+-0.25为了简洁起见,我在这里将它们省略了。)

答案1

floorPGF 数学引擎中有一个函数(请参阅63.2 函数手册),这可以在 TikZ 坐标中使用,例如

\node at (1,{floor(1.6)}) {text};

将在 处放置一个节点(1,1)。 周围的括号floor()是必需的,这样 的右括号floor就不会被读作坐标的右括号。 省略它们会导致错误。

enter image description here

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\newcommand\rya{1.8}
\begin{document}
\begin{tikzpicture}
\fill (0,0) rectangle +(1,\rya);
\fill (1.1,0) rectangle +(1,{floor(\rya)});
\end{tikzpicture}
\end{document}

相关内容