使用森林包制作的树木生长动画

使用森林包制作的树木生长动画

我想让一棵正在生长的树“动起来”。这意味着树 (a)-(c) 中的节点和边应该像最终的树一样对齐。 错误对齐

不幸的是,我不知道如何使用森林包或一般方法做到这一点(除了用 tikz“手工”绘制所有内容)。

用于生成错误对齐图片的代码是:

\documentclass{article}
\usepackage{tikz}
\usepackage{subcaption}
\usepackage[linguistics]{forest}
\begin{document}
\begin{figure}
\centering
\subcaptionbox[Tree]{
    Tree
    \label{subfig:sublabel1}%
}
[0.3\textwidth]
{%
\begin{forest}for tree={inner sep=0pt,outer sep=0pt, s sep=(2-level)*2mm, l=(8-level*level*level)*0.1mm}
  [,s sep=30
    [1
      [1]
    ]
  ]
\end{forest}}
\hspace{0.1\textwidth}
\subcaptionbox[Tree]{
    Tree
    \label{subfig:sublabel1}%
}
[0.3\textwidth]{
\begin{forest}for tree={inner sep=0pt,outer sep=0pt, s sep=(2-level)*2mm, l=(8-level*level*level)*0.1mm}
  [,s sep=30
    [1
      [1][0][1]
    ]
  ]  
\end{forest}}

\subcaptionbox[Tree]{
    Tree
    \label{subfig:sublabel1}%
}
[0.3\textwidth]{
\begin{forest}for tree={inner sep=0pt,outer sep=0pt, s sep=(2-level)*2mm, l=(8-level*level*level)*0.1mm}
  [,s sep=30
    [1
      [1][0][1][0]
    ]
    [1
      [0][1]
    ]
  ]
\end{forest}
}
\hspace{0.1\textwidth}
\subcaptionbox[Tree]{
    Tree
    \label{subfig:sublabel1}%
}
[0.3\textwidth]{
\begin{forest}for tree={inner sep=0pt,outer sep=0pt, s sep=(2-level)*2mm, l=(8-level*level*level)*0.1mm}
  [,s sep=30
    [1
      [1][0][1][0]
    ]
    [1
      [0][1][0][0]
    ]
    [0]
    [1
      [1][0][0][0]
    ]
  ]
\end{forest}
}
\end{figure}
\end{document}

编辑:我发现类似问题关于 Beamer 并尝试根据 Qrrbrbirlbel 提供的代码制定解决方案,但迄今为止无济于事:

我试过:

\tikzset{
    invisible/.style={opacity=0,text opacity=0},
}
\forestset{
  invisible/.style={
    for tree={
      /tikz/invisible,
      edge={/tikz/invisible}}}}

,for children={invisible}并在节点后指定,不幸的是没有任何反应。

答案1

节点选项phantom在定位时会考虑节点,但不会绘制它或它的边缘。

以下代码实现了树(c)所需的效果。

\begin{forest}for tree={inner sep=0pt,outer sep=0pt, s sep=(2-level)*2mm, l=(8-level*level*level)*0.1mm}
  [,s sep=30
    [1
      [1][0][1][0]
    ]
    [1,for nodewalk={3n}{phantom}
      [0][1][0][0]
    ]
    [0,phantom]
    [1,for tree=phantom
      [1][0][0][0]
    ]
  ]
\end{forest}

相关内容