如何在两个 tikz 图片之间保存和重用值

如何在两个 tikz 图片之间保存和重用值

第一幅图中有两张图片,我计算了矢量的角度,希望在第二幅图中重复使用这个值。我怎样才能将这个值从一个图保存到另一个图?

第一张图片

\begin{tikzpicture}
\node (A) at (0,0){};
\node (J) at (3,2){};
\node(C) at (3,0){};
\newdimen\x
\newdimen\y
\pgfextractx{\x}{\pgfpointanchor{J}{center}}
\pgfextracty{\y}{\pgfpointanchor{J}{center}}
\pgfmathsetmacro{\aaa}{atan2(\y,\x)}

\draw (C) --++(\aaa:3);
\end{tikzpicture}

另一个

\begin{tikzpicture}

\draw (0,0) --++(\aaa:3);
\end{tikzpicture}

PS:请随意优化我计算角度的代码

答案1

在这种特殊情况下,您绝对可以保存该值以供再次使用。 调用后,\pgfmathparse您可以执行以下操作

\pgfmathparse{atan2(\y,\x)}
\xdef\aaa{\pgfmathresult}

或者像你的情况一样

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}

\noindent
\begin{tikzpicture}
\node (A) at (0,0){};
\node (J) at (3,2){};
\node(C) at (3,0){};
\newdimen\x
\newdimen\y
\pgfextractx{\x}{\pgfpointanchor{J}{center}}
\pgfextracty{\y}{\pgfpointanchor{J}{center}}
\pgfmathsetmacro{\aaa}{atan2(\y,\x)}
\xdef\aaa{\aaa}

\draw (C) --++(\aaa:3);
\end{tikzpicture}

And then later

\noindent
\begin{tikzpicture}

\draw (0,0) --++(\aaa:3);
\end{tikzpicture}

\end{document}

相关内容