以下是代码
\begin{figure}[h]
\begin{tikzpicture}
\coordinate (E) at (1.5,0);
\coordinate (F) at ($(E)+(20:15)$);
\coordinate (G) at ($(F)+(110:.2)$);
\coordinate (H) at ($(E)+(110:.2)$);
\coordinate (I) at ($(E)+(20:5)$);
\draw[fill,color=gray!50] (E) -- (F) -- (G) -- (H) -- cycle;
\begin{scope}[rotate around={-40:(I)}]
\draw[dashed] (E) -- (F) -- (G) -- (H) -- cycle;
\end{scope}
\end{tikzpicture}
\end{figure}
但是我画了两次相同的 tikzfigure。我希望第二次绘制的是第一次围绕坐标 I 旋转 -40 度。我注意到命名坐标在旋转中保持不变,但我如何才能实现我想要的效果?在范围内重新定义坐标很乏味,我想避免这种繁琐的工作。
答案1
如果您想最小化代码,您可以在宏中定义坐标。
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\newcommand{\mycoordinates}{%
\coordinate (E) at (1.5,0);
\coordinate (F) at ($(E)+(20:15)$);
\coordinate (G) at ($(F)+(110:.2)$);
\coordinate (H) at ($(E)+(110:.2)$);
}
\begin{tikzpicture}
\mycoordinates
\coordinate (I) at ($(E)+(20:5)$);
\draw[fill,color=gray!50] (E) -- (F) -- (G) -- (H) -- cycle;
\begin{scope}[rotate around={-40:(I)}]
\mycoordinates
\draw[dashed] (E) -- (F) -- (G) -- (H) -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}