![在 TikZ 中旋转](https://linux22.com/image/384573/%E5%9C%A8%20TikZ%20%E4%B8%AD%E6%97%8B%E8%BD%AC.png)
我有以下代码
\documentclass{article}
\usepackage{graphicx,tikz}
\begin{document}
\begin{tikzpicture}
\draw[ultra thick] (-1,0) -- (1,0);
\draw[ultra thick] (0,0) -- (0,2);
\end{tikzpicture}
\rotatebox{115}{\begin{tikzpicture}
\draw[ultra thick] (-1,0) -- (1,0);
\draw[ultra thick] (0,0) -- (0,2);
\end{tikzpicture}}
\end{document}
给予
这幅图应该代表投掷(风格化的)钉子后的两种可能状态。图中的角度\rotatebox
是通过反复试验获得的。我想知道我是否可以用它tikz
来完成同样的工作而无需猜测。
答案1
是的,Ti钾Z 可以做到这一点。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[ultra thick] (-1,0) -- (1,0);
\draw[ultra thick] (0,0) -- (0,2);
\end{tikzpicture}
\begin{tikzpicture}[rotate={atan2(1,2)+90}]
\draw[ultra thick] (-1,0) -- (1,0);
\draw[ultra thick] (0,0) -- (0,2);
\end{tikzpicture}
\end{document}
好的,让我们让 Ti钾Z 进行计算。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw[ultra thick] (-1,0) -- (1,0);
\draw[ultra thick] (0,0) -- (0,2);
\end{tikzpicture}
\begin{tikzpicture}[globalize angle/.code={\xdef#1{\n1}}]
% the points (0,2) and (-1,0) are the ones you want to be horizontal
\path let \p1=($(0,2)-(-1,0)$),\n1={180-atan2(\y1,\x1)} in
[globalize angle=\myangle];
\begin{scope}[rotate=\myangle]
\draw[ultra thick] (-1,0) -- (1,0);
\draw[ultra thick] (0,0) -- (0,2) coordinate(aux);
\end{scope}
\end{tikzpicture}
\end{document}