【发布时间】:2010-05-31 02:56:16
【问题描述】:
我正在使用ruby-graphviz gem,我正在尝试绘制二叉树。我想使用record shape,这样每个节点都可以有一个左、中、右字段,因此,如果有两条边离开一个节点,则可以区分左右边。
我尝试通过连接字段名称来指定字段,如下所示:@node1.name + ":left" 但这不起作用。指定字段的正确方法是什么?
require 'rubygems'
require 'graphviz'
@graph = GraphViz.new( :G, :type => :digraph )
@node1 = @graph.add_node("1",
"shape" => "record",
"label" => "<left>|<f1> 1|<right>" )
@node2 = @graph.add_node("2",
"shape" => "record",
"label" => "<left>|<f1> 2|<right>" )
@graph.add_edge(@node1.name + ":left", @node2)
# generate a random filename
filename = "/tmp/#{(0...8).map{65.+(rand(25)).chr}.join}.png"
@graph.output( :png => filename )
exec "open #{filename}"
【问题讨论】:
标签: ruby binary-tree graphviz