Browse Source

tags/0.3.3
alexgutteridge 19 years ago
parent
commit
259e02a3db
1 changed files with 61 additions and 0 deletions
  1. +61
    -0
      test/test_draw.rb

+ 61
- 0
test/test_draw.rb View File

@@ -0,0 +1,61 @@
require 'igraph'
require 'cairo'

g = IGraph.barabasi_game(100,3,false,false)

vertices = g.to_a
layout = g.send(ARGV.shift.to_sym,*ARGV.map{|a| eval(a)}).to_a

format = Cairo::FORMAT_ARGB32
width = 1000
height = 1000

surface = Cairo::ImageSurface.new(format, width, height)
cr = Cairo::Context.new(surface)

# fill background with white
cr.set_source_rgba(1.0, 1.0, 1.0, 0.8)
cr.paint

max_x = layout.map{|a| a[0]}.max
min_x = layout.map{|a| a[0]}.min
max_y = layout.map{|a| a[1]}.max
min_y = layout.map{|a| a[1]}.min

x_var = max_x - min_x
y_var = max_y - min_y

max_var = [x_var,y_var].max

layout.each_with_index do |a,i|
x,y = *a

x = (x - min_x)/max_var
y = (y - min_y)/max_var
x *= (width)
y *= (height)

layout[i] = [x,y]

puts "#{x} #{y}"

end

layout.each_with_index do |a,i|

v = vertices[i]
x,y = *a

cr.set_source_rgba(rand,rand,rand,0.5)
cr.circle(x,y,1).fill

g.adjacent_vertices(v,IGraph::OUT).each do |w|
cr.move_to(x,y)
wx,wy = *layout[vertices.index(w)]
cr.line_to(wx,wy)
cr.stroke
end

end

cr.target.write_to_png("test.png")

Loading…
Cancel
Save