File: sample52.rb

package info (click to toggle)
ruby-graphviz 1.2.5-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,216 kB
  • sloc: ruby: 7,685; xml: 26; makefile: 17
file content (62 lines) | stat: -rw-r--r-- 2,059 bytes parent folder | download | duplicates (5)
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" )