![在 TikZ 中对坐标进行舍入](https://linux22.com/image/268123/%E5%9C%A8%20TikZ%20%E4%B8%AD%E5%AF%B9%E5%9D%90%E6%A0%87%E8%BF%9B%E8%A1%8C%E8%88%8D%E5%85%A5.png)
我正在尝试将动画的\multiframe
命令与 TikZ\fill
命令结合起来,以便在每四帧中,我的矩形的顶部移动一个单位:
\multiframe{20}{rya=10+-0.25}{
\fill[green!10] (4,0) rectangle (6,\rya);
}
我目前的方法的问题是,它不是每四帧调整矩形一个单位,而是每四帧调整一个单位。四分之一单位每个框架。
我所追求的是某种可以应用的“floor”函数\rya
,或者任何其他可以实现相同结果的替代方法。
(还有一些其他的东西同时在进行动画处理,阻止我简单地降低帧速率并使用iya=10+-1
。rya=10+-0.25
为了简洁起见,我在这里将它们省略了。)
答案1
floor
PGF 数学引擎中有一个函数(请参阅63.2 函数手册),这可以在 TikZ 坐标中使用,例如
\node at (1,{floor(1.6)}) {text};
将在 处放置一个节点(1,1)
。 周围的括号floor()
是必需的,这样 的右括号floor
就不会被读作坐标的右括号。 省略它们会导致错误。
\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}