Code:#!/usr/bin/ruby require 'gtk2' require 'gnomecanvas2' class CurveFromLines def initialize(size=150) Gtk.init() @window = Gtk::Window.new() @window.set_title("LinesFromCurve") @window.set_default_size(size*2,size*2) @window.signal_connect("delete_event") { Gtk::main_quit() } @canvas = Gnome::Canvas.new() @canvas.set_center_scroll_region(true) @canvas.set_pixels_per_unit(0.8) @root = @canvas.root 0.upto(size) do |x| color = 65535 - (x * 65535 / size) line = Gnome::CanvasLine.new( @root, { :points => [[0,x], [size-x,0]], :"fill-color-gdk" => Gdk::Color.new(color,color,color) } ) line2 = Gnome::CanvasLine.new( @root, { :points => [[0,-x], [-size+x,0]], :"fill-color-gdk" => Gdk::Color.new(color,color,color) } ) end @vbox = Gtk::VBox.new() @vbox.pack_start(@canvas) @window.add(@vbox) @window.show_all() Gtk.main() end end curve = CurveFromLines.new(250)



Reply With Quote