... one upon the time ... :) I draw this tree
by CorelDraw! for presenting convolution coding rules, which I like now to redraw and modernize with help of forest package. I stuck at followings:
- skip drawing nodes on the end of tree
- placings edge labels on better/shorter way
- make tree layout symmetrical at all tree levels
I kindly ask help me in the following to resolve above listed problems as well to add names to nodes in tree for later use, for example draw input line with condition for branching, for append some legend and auxiliary images or for callout
nodes (balloons) for some explanations.
So far I manage to write the following code:
\documentclass[tikz,
margin=3mm,
preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{forest}
%---------------------------------------------------------------%
\begin{document}
\begin{forest}
for tree={% style of tree nodes
circle, font=\small\sffamily,
fill = blue!60!black,
minimum size = 4mm,
inner sep = 0.5pt,
text = white,
% style of tree (edges, distances, direction)
edge = {draw, semithick},
edge path={
\noexpand\path[\forestoption{edge}]
(!u.parent anchor) |-
(.child anchor) -- % intermediate point
(.child anchor)\forestoption{edge label};
},
grow = east,
s sep = 2mm, % sibling distance
l sep = 12mm, % level distance
}
[a
[b,edge label={node[xshift=-9mm,fill=white]{11}}
[d,edge label={node[xshift=-9mm,fill=white]{01}}
[d,edge label={node[xshift=-9mm,fill=white]{10}}
[,edge label={node[xshift=-9mm,fill=white]{10}}]
[,edge label={node[xshift=-9mm,fill=white]{01}}]
]
[c,edge label={node[xshift=-9mm,fill=white]{01}}
[,edge label={node[xshift=-9mm,fill=white]{00}}]
[,edge label={node[xshift=-9mm,fill=white]{11}}]
]
]
[c,edge label={node[xshift=-9mm,fill=white]{10}}
[b,edge label={node[xshift=-9mm,fill=white]{00}}
[,edge label={node[xshift=-9mm,fill=white]{10}}]
[,edge label={node[xshift=-9mm,fill=white]{01}}]
]
[a,edge label={node[xshift=-9mm,fill=white]{11}}
[,edge label={node[xshift=-9mm,fill=white]{11}}]
[,edge label={node[xshift=-9mm,fill=white]{00}}]
]
]
]
[a,edge label={node[xshift=-9mm,fill=white]{00}}
[b,edge label={node[xshift=-9mm,fill=white]{11}}
[d,edge label={node[xshift=-9mm,fill=white]{01}}
[,edge label={node[xshift=-9mm,fill=white]{10}}]
[,edge label={node[xshift=-9mm,fill=white]{01}}]
]
[c,edge label={node[xshift=-9mm,fill=white]{10}}
[,edge label={node[xshift=-9mm,fill=white]{00}}]
[,edge label={node[xshift=-9mm,fill=white]{11}}]
]
]
[a,edge label={node[xshift=-9mm,fill=white]{00}}
[b,edge label={node[xshift=-9mm,fill=white]{11}}
[,edge label={node[xshift=-9mm,fill=white]{01}}]
[,edge label={node[xshift=-9mm,fill=white]{10}}]
]
[a,edge label={node[xshift=-9mm,fill=white]{00}}
[,edge label={node[xshift=-9mm,fill=white]{11}}]
[,edge label={node[xshift=-9mm,fill=white]{00}}]
]
]
]
];
\end{forest}
\end{document}