我编写了一个脚本,可以将乳胶代码转换为动画,但渲染后的内容会重新调整其大小以最佳适应框架,我想关闭此功能,因为动画在渲染时会闪烁。以下是乳胶代码:
\documentclass[aspectratio=169]{beamer}
\usepackage{tikz}
\usepackage{tkz-euclide}
\setbeamertemplate{navigation symbols}{}
\setlength{\parindent}{0pt}
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}[scale=0.7]
\tkzDefPoint(2,0){A}\tkzDefPoint(0,0){O}
\tkzDefShiftPoint[A](31:5){B}
\tkzDefShiftPoint[A](*#type-g 1:120 20:3600#* :5){C}
\tkzDrawPoints(A,B,C)
\tkzDrawSegments[color = red, line width = 1pt](A,B A,C)
\tkzProtractor[scale = 1](A,B)
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}
这里,*#type-g 1:120 20:3600#*
表示在动画的 1 到 120 帧内将此位置的值从 20 补间至 3600。
答案1
我认为解决方案可能是添加\useasboundingbox
(tikz) 命令。谢布·格拉夫评论中建议,如果你画一个独特的矩形,包围所有可能的图形位置,你就已经修复了它。然后你可以用\useasboundingbox
相同的顶点更改绘制的矩形。我补充说,例如:
\useasboundingbox (-3.5,-5.5) rectangle (7.5,5.5);
我修改了动画代码,用类似的东西(我想)制作不同的投影幻灯片。这是我所拥有的:
\documentclass[aspectratio=169]{beamer}
%\usepackage{tikz}
\usepackage{tkz-euclide}
\setbeamertemplate{navigation symbols}{}
\setlength{\parindent}{0pt}
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}[scale=0.7]
\useasboundingbox (-3.5,-5.5) rectangle (7.5,5.5);
\tkzDefPoint(2,0){A}\tkzDefPoint(0,0){O}
\tkzDefShiftPoint[A](31:5){B}
\foreach\i in {1,...,18}
{% this produces 18 beamer slides
\only<\i>
{%
\pgfmathtruncatemacro\a{20*(\i-1)+31} % rotation angle
\tkzDefShiftPoint[A](\a:5){C}
}
}
\tkzDrawPoints(A,B,C)
\tkzDrawSegments[color = red, line width = 1pt](A,B A,C)
\tkzProtractor[scale = 1](A,B)
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}