1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#!/usr/bin/ruby
$:.unshift( "../lib" );
require "graphviz"
GraphViz::new( "G", :type => "graph", :rankdir => "LR", :bgcolor => "#808080" ) { |graph|
graph.edge[:dir] = "none"
graph.node[:width] = "0.3"
graph.node[:height] = "0.3"
graph.node[:label] = ""
_ = {}
("1".."8").each do |v|
_[v] = graph.add_nodes( v, :shape => "circle", :style => "invis")
end
["10","20","30","40","50","60","70","80"].each do |v|
_[v] = graph.add_nodes( v, :shape => "circle", :style => "invis")
end
("a".."x").each do |v|
_[v] = graph.add_nodes( v, :shape => "circle")
end
("A".."X").each do |v|
_[v] = graph.add_nodes( v, :shape => "diamond")
end
(_["1"] << _["a"])[:color]="#0000ff"
(_["a"] << _["A"])[:color]="#0000ff"
(_["a"] << _["B"])[:color]="#0000ff"
(_["2"] << _["b"])[:color]="#ff0000"
(_["b"] << _["B"])[:color]="#ff0000"
(_["b"] << _["A"])[:color]="#ff0000"
(_["3"] << _["c"])[:color]="#ffff00"
(_["c"] << _["C"])[:color]="#ffff00"
(_["c"] << _["D"])[:color]="#ffff00"
(_["4"] << _["d"])[:color]="#00ff00"
(_["d"] << _["D"])[:color]="#00ff00"
(_["d"] << _["C"])[:color]="#00ff00"
(_["5"] << _["e"])[:color]="#000000"
(_["e"] << _["E"])[:color]="#000000"
(_["e"] << _["F"])[:color]="#000000"
(_["6"] << _["f"])[:color]="#00ffff"
(_["f"] << _["F"])[:color]="#00ffff"
(_["f"] << _["E"])[:color]="#00ffff"
(_["7"] << _["g"])[:color]="#ffffff"
(_["g"] << _["G"])[:color]="#ffffff"
(_["g"] << _["H"])[:color]="#ffffff"
(_["8"] << _["h"])[:color]="#ff00ff"
(_["h"] << _["H"])[:color]="#ff00ff"
(_["h"] << _["G"])[:color]="#ff00ff"
graph.edge[:color]="#ff0000:#0000ff"
_["A"] << _["i"]; _["i"] << [_["I"], _["K"]]
_["B"] << _["j"]; _["j"] << [_["J"], _["L"]]
graph.edge[:color]="#00ff00:#ffff00"
_["C"] << _["k"]; _["k"] << [_["K"], _["I"]]
_["D"] << _["l"]; _["l"] << [_["L"], _["J"]]
graph.edge[:color]="#00ffff:#000000"
_["E"] << _["m"]; _["m"] << [_["M"], _["O"]]
_["F"] << _["n"]; _["n"] << [_["N"], _["P"]]
graph.edge[:color]="#ff00ff:#ffffff"
_["G"] << _["o"]; _["o"] << [_["O"], _["M"]]
_["H"] << _["p"]; _["p"] << [_["P"], _["N"]]
graph.edge[:color]="#00ff00:#ffff00:#ff0000:#0000ff"
_["I"] << _["q"]; _["q"] << [_["Q"], _["U"]]
_["J"] << _["r"]; _["r"] << [_["R"], _["V"]]
_["K"] << _["s"]; _["s"] << [_["S"], _["W"]]
_["L"] << _["t"]; _["t"] << [_["T"], _["X"]]
graph.edge[:color]="#ff00ff:#ffffff:#00ffff:#000000"
_["M"] << _["u"]; _["u"] << [_["U"], _["Q"]]
_["N"] << _["v"]; _["v"] << [_["V"], _["R"]]
_["O"] << _["w"]; _["w"] << [_["W"], _["S"]]
_["P"] << _["x"]; _["x"] << [_["X"], _["T"]]
graph.edge[:color]="#ff00ff:#ffffff:#00ffff:#000000:#00ff00:#ffff00:#ff0000:#0000ff"
_["Q"] << _["10"]
_["R"] << _["20"]
_["S"] << _["30"]
_["T"] << _["40"]
_["U"] << _["50"]
_["V"] << _["60"]
_["W"] << _["70"]
_["X"] << _["80"]
}.output( :path => '/usr/local/bin/', :png => "#{$0}.png" )
|