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
|
# http://www.graphviz.org/Gallery/directed/traffic_lights.gv.txt
#
# digraph TrafficLights {
# node [shape=box]; gy2; yr2; rg2; gy1; yr1; rg1;
# node [shape=circle,fixedsize=true,width=0.9]; green2; yellow2; red2; safe2; safe1; green1; yellow1; red1;
# gy2->yellow2;
# rg2->green2;
# yr2->safe1;
# yr2->red2;
# safe2->rg2;
# green2->gy2;
# yellow2->yr2;
# red2->rg2;
# gy1->yellow1;
# rg1->green1;
# yr1->safe2;
# yr1->red1;
# safe1->rg1;
# green1->gy1;
# yellow1->yr1;
# red1->rg1;
#
# overlap=false
# label="PetriNet Model TrafficLights\nExtracted from ConceptBase and layed out by Graphviz"
# fontsize=12;
# }
$:.unshift( "../../lib" );
require "graphviz"
GraphViz::new( "TrafficLights", :type => :digraph ) { |g|
g.gy2[:shape] = :box; g.yr2[:shape] = :box; g.rg2[:shape] = :box; g.gy1[:shape] = :box; g.yr1[:shape] = :box; g.rg1[:shape] = :box;
g.green2.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.yellow2.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.red2.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.safe2.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.safe1.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.green1.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.yellow1.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.red1.set { |n| n[:shape] = :circle; n[:fixedsize] = :true; n[:width] = 0.9 }
g.gy2 << g.yellow2
g.rg2 << g.green2
g.yr2 << g.safe1
g.yr2 << g.red2
g.safe2 << g.rg2
g.green2 << g.gy2
g.yellow2 << g.yr2
g.red2 << g.rg2
g.gy1 << g.yellow1
g.rg1 << g.green1
g.yr1 << g.safe2
g.yr1 << g.red1
g.safe1 << g.rg1
g.green1 << g.gy1
g.yellow1 << g.yr1
g.red1 << g.rg1
g[:overlap] = :false
g[:label] = 'PetriNet Model TrafficLights\nExtracted from ConceptBase and layed out by Graphviz'
g[:fontsize] = 12;
}.output( :errors => 1, :png => "#{$0}.png" )
|