+ function num_scale(src_cur, src_max, dst_min, dst_max) {
+ return dst_min + ((src_cur * (dst_max - dst_min)) / src_max)
+ }
+
+ function vert_print(v, _color) {
+ _color =\
+ num_scale(\
+ parent2child_count[v],
+ max_children,
+ COLORSCHEME_MIN,
+ COLORSCHEME_MAX\
+ )
+ fontcolor = _color >= 5 ? 1 : 9
+ printf(\
+ "\"%d\"\
+ [ fontsize=8 \
+ , style=filled \
+ , fontname=Helvetica \
+ , shape=ellipse \
+ , label=\"%s\n%d\" \
+ , colorscheme=%s \
+ , color=%d \
+ , fontcolor=%d \
+ ];",
+ v,
+ child2cmd[v],
+ v,
+ COLORSCHEME,
+ _color,
+ fontcolor\
+ )
+ }
+
+ function edge_print(child, _parent, _color) {
+ _parent = child2parent[child]
+ _color =\
+ num_scale(\
+ parent2child_count[_parent],
+ max_children,
+ COLORSCHEME_MIN,
+ COLORSCHEME_MAX\
+ )
+ printf(\
+ "\"%s\" -> \"%s\"\
+ [ fontsize=8 \
+ , fontname=Helvetica \
+ , len=2.0 \
+ , colorscheme=%s \
+ , color=%d \
+ ];\n",
+ _parent,
+ child,
+ COLORSCHEME,
+ _color\
+ )
+ }
+