旋转范围,并在范围之外定义命名坐标

旋转范围,并在范围之外定义命名坐标

以下是代码


  \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} 

在此处输入图片描述

相关内容