如何绘制穿过树的一条边的曲线(使用 tikz-qtree)?

如何绘制穿过树的一条边的曲线(使用 tikz-qtree)?

我正在使用tikz-qtree,我想绘制一条曲线,将一组节点与树的其余部分分开。例如,

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}
\begin{tikzpicture}[every node/.style={circle,draw,
                top color=white,bottom color=yellow!80,
                very thin},
                level distance=1.5cm,
                sibling distance=0.6cm]
  \Tree[.{$+$}
           [.{$*$}
               [.{$\cos$}
                   [.{$a$} ] ]
               [.{$2$} ] ]
               [.{$y$} ] ]
\end{tikzpicture}
\end{document}

产生这个(抱歉,我还不知道如何将图片上传到 tex.stackexchange,所以这个有点小):

在此处输入图片描述

现在,我想绘制一条穿过一条边的(虚线)曲线(例如,从*到 的边cos)——将节点集一分为二(cosa以及所有其他节点)。

我知道我可以使用该fit库在节点周围绘制省略号,但我想要一条开放的线(更像是圆周弧或贝塞尔曲线)。

做到这一点最简单的方法是什么?

答案1

您可以使用\node带有名称的 TikZ (请参阅第节4 嵌入 TikZ 节点文档tikz-qtree),然后使用任何有效的方法绘制虚线TikZ。直线的示例:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{tikz-qtree}

\begin{document}
\begin{tikzpicture}[every node/.style={circle,draw,
                top color=white,bottom color=yellow!80,
                very thin},
                level distance=1.5cm,
                sibling distance=0.6cm]
  \Tree[.{$+$}
           [.\node(ast){$*$};
               [.\node(cos){$\cos$};
                   [.{$a$} ] ]
               [.{$2$} ] ]
               [.{$y$} ] ]
\path[draw,dotted] ( $ (ast) + (-1,0) $) -- ++(-55:2.5);
\end{tikzpicture}
\end{document}

在此处输入图片描述

曲线示例:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{tikz-qtree}

\begin{document}
\begin{tikzpicture}[every node/.style={circle,draw,
                top color=white,bottom color=yellow!80,
                very thin},
                level distance=1.5cm,
                sibling distance=0.6cm]
  \Tree[.{$+$}
           [.\node(ast){$*$};
               [.\node(cos){$\cos$};
                   [.{$a$} ] ]
               [.{$2$} ] ]
               [.{$y$} ] ]
\path[draw,dotted] ( $ (ast) + (-1,0) $) to[out=230,in=23] ++(-58:2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容