我正在尝试重现与此类似的图形:
这是我目前所做的。但是,矢量的倾斜和拉伸并不像上图那样真实。
\documentclass[border=5mm,tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usetikzlibrary{calc,shapes.arrows}
\begin{document}
\begin{tikzpicture}[decoration={brace}]
% Line
\draw[dashed] (-0.8,.125) -- (2,2);
% Arrows
\node[anchor=west,draw,single arrow,rotate=160,xshift=1mm,yshift=-1mm,fill=gray!30] (a) at (-0.25,.425) {\hspace*{0.96cm}};
\node[anchor=west,draw,single arrow,rotate=140,xshift=1mm,yshift=-1mm,fill=gray!30] (b) at (0.4,0.8) {\hspace*{1cm}};
\node[anchor=west,draw,single arrow,rotate=110,xshift=1mm,yshift=-1mm,fill=gray!30] (c) at (0.8,1.1) {\hspace*{1.1cm}};
\node[anchor=west,draw,single arrow,rotate=90,xshift=1mm,yshift=-1mm,fill=gray!30] (d) at (1.4,1.5) {\hspace*{1cm}};
\end{tikzpicture}
\end{document}
答案1
可能需要对此进行一些微调,但您实际上可以尝试的是应用额外的slant
:
\documentclass[border=5mm,tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usetikzlibrary{calc,shapes.arrows}
%
\begin{document}
\begin{tikzpicture}[decoration={brace}, every node/.style={anchor=west,draw,single arrow,fill=gray!30}]
%
% Line
\draw[dashed] (-0.8,.125) -- (2,2);
%
% Arrows
\node[rotate=160,xshift=1mm,yshift=-1mm, xslant=0.75] (a) at (-0.25,.425) {\hspace*{0.96cm}};
\node[rotate=140,xshift=1mm,yshift=-1mm, xslant=0.275] (b) at (0.4,0.8) {\hspace*{1cm}};
\node[rotate=110,xshift=1mm,yshift=-1mm, xslant=-0.25] (c) at (0.8,1.1) {\hspace*{1.1cm}};
\node[rotate=90,xshift=1mm,yshift=-1mm, xslant=-0.65] (d) at (1.4,1.5) {\hspace*{1cm}};
%
\end{tikzpicture}
\end{document}
答案2
rotate around z
此处可以合理使用该密钥:
\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}[x=(0:1cm), y=(90:1cm), z=(215:1cm / sqrt 2)]
\draw [dashed] (0, 0) -- (0, 0, 10);
\foreach \i [count=\z] in {-20, 0, 20, 40}
\filldraw [fill=gray!50, shift={(0, 0, \z*2)}, rotate around z=\i]
(0, 0, -1/2) -- (0, 2, -1/2) -- (0, 2, -1) -- (0, 3, 0) --
(0, 2, 1) -- (0, 2, 1/2) -- (0, 0, 1/2) -- cycle;
\end{tikzpicture}
\end{document}