问题不在于箭头,而在于帧。我希望图表能够告诉我们,每幅图像都是一个视频的帧。感谢 FHZ 的提示,我学会了搜索什么。这是我目前得到的结果。 这是代码:
\begin{tikzpicture}[x={(1,0)},y={(0,0.9)},z={({cos(5)},{sin(20)})}]
\node[canvas is yz plane at x = 0, transform shape](p1){\includegraphics[width=4cm]{tree1}};
\node[canvas is yz plane at x = 3, transform shape](p2){\includegraphics[width=4cm]{tree2}};
\node[canvas is yz plane at x = 6, transform shape](p3){\includegraphics[width=4cm]{tree3}};
\end{tikzpicture}
我认为这在某种程度上表明了图像是视频的帧,但看起来不太好看。所以我愿意听取建议。谢谢,Felix
答案1
编辑: 答案考虑问题的第一个版本。
链中有倾斜节点:
\documentclass[tikz, border=3.141592]{standalone}
\usetikzlibrary{arrows.meta,
chains,
patterns.meta, positioning,
quotes}
\begin{document}
\begin{tikzpicture}[auto=right,
node distance = 2mm and 1mm,
start chain = going left,
arl/.style = {Straight Barb-Straight Barb, shorten >=1pt, shorten <=1pt},
arr/.style = {-Straight Barb},
every edge quotes/.style = {inner sep=2pt, font=\footnotesize, align=center},
N/.style = {draw, minimum size=16mm, yslant=0.5, node contents={},
outer sep=0pt, yshift=8mm, on chain},
Np/.style = {N, postaction={pattern={Lines[angle=-30,distance={3pt},line width=0.2pt]},
pattern color=gray}}
]
\foreach \x in {1,2,...,8}
{
\ifnum\x<5
\node (n\x) [Np];
\else
\node (n\x) [N];
\fi
}
\coordinate[above=of n1.north east] (t);
\coordinate[below=of n1.south west] (b);
\draw [arr] (t) to ["Transmission Order"] (n8.east |- t);
\draw [arl] (b -| n1.west) to ["Frames in Scene B" '] (b -| n4.west);
\draw [arl] (b -| n5.west) to ["Frames in Scene A" '] (b -| n8.west);
\draw [arr]
(n5.west |- b) to ["Scene\\ Change"] (n4.west |-b);
\end{tikzpicture}
\end{document}
或者
\documentclass[tikz, border=3.141592]{standalone}
\usetikzlibrary{arrows.meta,
chains,
patterns.meta, positioning,
quotes}
\begin{document}
\begin{tikzpicture}[auto=right,
node distance = 2mm and -8mm,
start chain = going right,
arl/.style = {Straight Barb-Straight Barb, shorten >=1pt, shorten <=1pt},
arr/.style = {-Straight Barb},
every edge quotes/.style = {inner sep=2pt, font=\footnotesize, align=center},
N/.style = {draw, fill=white, minimum size=16mm, yslant=0.75, node contents={},
outer sep=0pt, yshift=-12mm, on chain},
Np/.style = {N, postaction={pattern={Lines[angle=-30,distance={3pt},line width=0.2pt]},
pattern color=gray}}
]
\foreach \x in {1,2,...,8}
{
\ifnum\x>4
\node (n\x) [Np];
\else
\node (n\x) [N];
\fi
}
\coordinate[above=of n1.north east] (t);
\coordinate[below=of n1.south west] (b);
\draw [arr] (t -| n8.east) to ["Transmission Order"] (t);
\draw [arl] (b -| n1.west) to [bend right=10, "Frames in\\ Scene A"] (b -| n4.west);
\draw [arl] (b -| n5.west) to [bend right=10, "Frames in\\ Scene B"] (b -| n8.west);
\draw [arr]
(n4.west |- b) to [bend right=60,"Scene\\ Change"] (n5.west |-b);
\end{tikzpicture}
\end{document}
答案2
使用\foreach
循环绘制图形并命名节点。节点称为bottom1
、...、bottom8
和top1
、...、top8
。使用这些来定位箭头。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style={inner sep=0pt, outer sep=0pt, minimum width=0pt, minimum height=6pt, font={\footnotesize}}]
\foreach \n in {1,...,4}{
\draw (\n,0) node(bottom\n){}--(\n+.8,.8)--(\n+.8,2)node(top\n){}--(\n,1.2)--cycle;}
\foreach \n in {5,...,8}{
\draw[fill=gray!30] (\n,0) node(bottom\n){}--(\n+.8,.8)--(\n+.8,2)node(top\n){}--(\n,1.2)--cycle;}
\draw [latex-] (top1.north)--node[above=1mm]{Transmission Order}(top8.north);
\draw [latex-latex] (bottom1.south)to[bend right=5]node[below=1mm]{Frames in Scene A}(bottom4.south);
\draw [latex-latex] (bottom5.south)to[bend right=5]node[below=1mm]{Frames in Scene B}(bottom8.south);
\draw [-latex, looseness=2] ([yshift=-1mm]bottom4.south)to[bend right=75]node[below=1mm]{Scene Change}([yshift=-1mm]bottom5.south);
\end{tikzpicture}
\end{document}