我使用的是ruby-graphviz宝石,我试图绘制二叉树。我想使用record shape,这样每个节点都可以有左,中,右场,因此,如果有两个边离开一个节点,则可以区分左边和右边。红宝石GraphViz二叉树记录
我试图通过连接字段名称来指定字段,如下所示:@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}"
Oups!我错了...如果ID只有一个数字(匹配[ - ]?(。[0-9] + | [0-9] +(。[0-9] * )?))我只是在lib中进行了更正!这是一个错误! – greg 2010-05-31 11:58:09