如何将图片的一部分绘制为线条,另一部分绘制为“\leadsto”符号

如何将图片的一部分绘制为线条,另一部分绘制为“\leadsto”符号

请参考如何在乳胶中绘制类似符号“\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}

这个结果是不是你想要的呢?

相关内容