在 tikz 中,为什么矩形不像点的集合那样旋转?

在 tikz 中,为什么矩形不像点的集合那样旋转?

通过使用,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}

在此处输入图片描述

相关内容