\begin{figure}[tbp]
\centering
\begin{tikzpicture}[>=Latex, line join=round, line cap=round]
\path[use as bounding box] (-0.30,-0.35) rectangle (8.30,2.55);

\coordinate (OL) at (1.05,0.45);
\coordinate (OR) at (5.60,0.70);

\draw[->, thick, blue!70!black] (OL) -- ++(1.20,0.10) node[anchor=west] {$x$};
\draw[->, thick, blue!70!black] (OL) -- ++(-0.55,0.88) node[anchor=south east] {$y$};
\draw[->, thick, blue!70!black] (OL) -- ++(0.18,1.08) node[anchor=south] {$z$};

\filldraw[fill=gray!20, draw=black] ($(OL)+(-0.15,0.05)$) -- ($(OL)+(0.90,0.08)$) -- ($(OL)+(0.20,0.92)$) -- cycle;
\fill[black] ($(OL)+(0.35,0.20)$) circle (1.2pt) node[below left] {hinge};
\node[anchor=south east, align=center, font=\small] at ($(OL)+(0.15,1.15)$) {local\\frame};

\draw[->, thick, blue!70!black] (OR) -- ++(0.92,0.48) node[anchor=west] {$x'$};
\draw[->, thick, blue!70!black] (OR) -- ++(-0.72,0.62) node[anchor=south east] {$y'$};
\draw[->, thick, blue!70!black] (OR) -- ++(0.35,1.00) node[anchor=south] {$z'$};

\filldraw[fill=gray!20, draw=black] ($(OR)+(-0.02,0.08)$) -- ($(OR)+(0.78,0.42)$) -- ($(OR)+(-0.25,1.02)$) -- cycle;
\fill[black] ($(OR)+(0.18,0.28)$) circle (1.2pt) node[below] {same hinge};
\node[anchor=south west, align=center, font=\small] at ($(OR)+(0.42,1.10)$) {transformed\\frame};

\draw[->, very thick] (3.10,1.62) -- (4.45,1.62);
\node[align=center, font=\footnotesize, fill=white, inner sep=1pt] at (3.78,1.08) {rotate about\\the hinge,\\then translate};
\node[align=center] at (3.78,0.20) {$p(AB) = (pA)B$};
\end{tikzpicture}
\caption{A row-vector view of transformation composition. The point is acted on
from the left to the right, so the order in the code matches the order in which
the geometric motion is applied.}
\end{figure}