![在 tikz 中,为什么矩形不像点的集合那样旋转?](https://linux22.com/image/381862/%E5%9C%A8%20tikz%20%E4%B8%AD%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E7%9F%A9%E5%BD%A2%E4%B8%8D%E5%83%8F%E7%82%B9%E7%9A%84%E9%9B%86%E5%90%88%E9%82%A3%E6%A0%B7%E6%97%8B%E8%BD%AC%EF%BC%9F.png)
通过使用,rotate around x
我可以围绕 X 轴旋转一组点,但似乎无法旋转rectangle
。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[rotate around x=90]
\draw rectangle (1,1);
\draw[yshift=-20] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
\end{document}
答案1
我无法给出深入的答案为什么也就是说,矩形构造据我所知很简单(point1) -| (point1) -| cycle
。并且|-
无法正常转换。但是,有各种可能性可以实现您似乎想要的。您会发现密钥rotate around
不如库canvas is yx plane
附带的密钥“高效” 3d
。请注意,3d
已修复这里。当然,使用该3d
库无法直接实现任意旋转,但是可以使用包来解决tikz-3dplot
。如果您想访问所有可能的旋转,您可能会对以下答案感兴趣这个问题。您还可以找到一种无需加载tikz-3dplot
包即可实现任意旋转的方法,但恕我直言,没有理由不加载该包。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}[rotate around x=90,transform shape]
\draw[red] (0,0) rectangle (1,1);
\draw[yshift=-20,purple] (0,0) -| (1,1) -| cycle;
\draw[yshift=-40,blue] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node[anchor=north west,minimum width=1cm,minimum
height=1cm,draw,green!50!black] at (0,-2){};
\begin{scope}[xshift=8cm,canvas is yx plane at z=0,transform shape]
\draw[red] (0,0) rectangle (1,1);
\draw[yshift=-40,blue] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node[anchor=north west,minimum width=1cm,minimum height=1cm,draw,green!50!black] at (0,-2){};
\end{scope}
\end{tikzpicture}
\end{document}