请参考如何在乳胶中绘制类似符号“\leadsto”的箭头?图中所有行都改为\leadsto
:
现在我想让“b”和“Rgood”之间的连接线保持为“->”这样的线,那么如何更改代码?因为样式edge from parent/.style={draw,decorate,decoration={snake, post=lineto, post length=3mm}}]
是针对整个图片的。
答案1
您可以简单地将类似 leadsto 的装饰放入样式中,这样您就可以手动将它们应用到您想要的弧线上。
此版本在edge from parent
实际节点之前添加了一个标签,这有点儿像黑客所为,用于实现边缘标签。边缘似乎再次插入到节点中,因此我不得不edge from parent[draw=none]
在每个节点后添加。
除非有人更了解使用树库及其自动增长的优雅解决方案,否则我个人会避免这样做,而更喜欢手动放置节点并将它们与边连接起来。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees,decorations.pathmorphing}
\tikzset{level 1/.style={level distance=1.5cm, sibling distance=3.5cm}}
\tikzset{level 2/.style={level distance=1.5cm, sibling distance=2cm}}
\tikzset{bag/.style={text width=20em, text centered,yshift=-0.2cm}}
\begin{document}
\begin{tikzpicture}[grow=down, -stealth,
leadsto/.style={draw,decorate,decoration={snake, post=lineto, post length=3mm}}]
\node[bag]{$(B)$}
child {edge from parent node[right]{t}; \node[bag]{$(Rgood)$} edge from parent[draw=none]
child{ edge from parent[leadsto] node[right]{and}; \node[bag]{$(and)$} edge from parent[draw=none]
child[missing]
child{ edge from parent[leadsto] node[right=0.1cm]{it}; \node[bag]{$(path1)$} edge from parent[draw=none]}
child{ edge from parent[leadsto] node[right=0.1cm]{else}; \node[bag]{$(path2)$} edge from parent[draw=none]}
}};
\end{tikzpicture}
\end{document}
这个结果是不是你想要的呢?