21

I have a named path (a triangle). How do I rotate it around point A in various angles without recalculating points B & C?

Here's my code. I want to create the red and green triangles by simply rotating the black triangle in multiples of 60 degrees.

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
    \providecommand* \angle {30}
    \coordinate[label=above left:A](A) at (2,3);
    \coordinate[label=below:B](B) at (0,0);
    \coordinate[label=below:C](C) at (6,0);
    \draw
        (A) -- (B) -- (C) -- cycle;

    \coordinate[label=B'](B') at ($(A)!1!60:(B)$);
    \coordinate[label=C'](C') at ($(A)!1!60:(C)$);
    \draw[dashed,red]
        (A) -- (B') -- (C') -- cycle;

    \coordinate[label=B''](B'') at ($(A)!1!60:(B')$);
    \coordinate[label=C''](C'') at ($(A)!1!60:(C')$);
    \draw[dashed,green]
        (A) -- (B'') -- (C'') -- cycle;
\end{tikzpicture}
\end{document}

Rotate triangle

2 Answers2

24

You are overwriting the nodes so it's a little trickier but essentially you can scope the path and use rotate around transformation.

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
    \providecommand* \angle {30}
    \coordinate[label=above left:A](A) at (2,3);
    \coordinate[label=below:B](B) at (0,0);
    \coordinate[label=below:C](C) at (6,0);
    \draw
        (A) -- (B) -- (C) -- cycle;

\begin{scope}[rotate around={60:(A)}]
    \coordinate[label=above left:A](A) at (2,3);
    \coordinate[label=below:B](B) at (0,0);
    \coordinate[label=below:C](C) at (6,0);
    \draw[dashed,red]
        (A) -- (B) -- (C) -- cycle;
\end{scope}

\end{tikzpicture}
\end{document}

enter image description here

percusse
  • 157,807
-1
\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
    %\providecommand* \angle {30}
    \coordinate[label=above left:A](A) at (2,3);
    \coordinate[label=below:B](B) at (0,0);
    \coordinate[label=below:C](C) at (6,0);
    \draw
        (A) -- (B) -- (C) -- cycle;

\begin{scope}[rotate around={60:(A)}]
    \coordinate[label=above left:A](A) at (2,3);
    \coordinate[label=below:B](B) at (0,0);
    \coordinate[label=below:C](C) at (6,0);
    \draw[dashed,red]
        (A) -- (B) -- (C) -- cycle;
\end{scope}

\end{tikzpicture}
\end{document}