rplot is a C extension for Ruby of GNU libplot.
GNU libplot is a free function library for drawing two-dimensional vector graphics. It can produce smooth, double-buffered animations for the X Window System, and can export files in many graphics file formats. It is ‘device-independent’ in the sense that its API (application programming interface) is to a large extent independent of the display type or output format. Rplot is a C extension for Ruby of GNU libplot.
-
libplot-dev
For Debian/Ubuntu users: apt-get install libplot-dev.
For Max OS X users use port: port install plotutils.
gem install rplot
Here two little examples.
The first invokes rplot operations to draw vector graphics. It draws an intricate and beautiful path (Bill Gosper’s “C” curve, discussed as Item #135 in HAKMEM, MIT Artificial Intelligence Laboratory Memo #239, 1972). As the numeric constant MAXORDER (here equal to 12) is increased, the path will take on the shape of a curly letter “C”, which is the envelope of a myriad of epicyclic octagons.
require 'rubygems' require 'rplot' module MyCurve MAXORDER = 12 def draw_curve(dx, dy, order) if order >= MAXORDER self.cont(dx, dy, :rel => true) else self.draw_curve(0.5*(dx-dy), 0.5*(dx+dy), order+1) self.draw_curve(0.5*(dx+dy), 0.5*(dy-dx), order+1) end end end Plotter.send(:include, MyCurve) Plotter.params(:pagesize => 'letter') Plotter.draw('png', 'RUBYtest3.png')do |p| p.space(0,0, 1000,1000) p.linewidth(0.25) p.pencolor('red') p.move(600, 300) p.draw_curve(0, 400, 0) end
The second example creates a simple animated pseudo-GIF, 150 pixels wide and 100 pixels high.
require 'rubygems' require 'rplot' Plotter.params(:bitmapsize => '150x100', :bg_color => 'orange', :transparent_color => 'orange', :gif_iterations => 100, :gif_delay => 5) p = Plotter.new('gif', 'image.gif') p.open p.space(0,0,149,99) p.pencolor('red') p.linewidth(5) p.filltype(1) p.fillcolor('black') i = 0 while i < 180 p.erase p.erase p.ellipse(75,50,40,20,i) i += 15 end p.delete
{Here the complete documentation with API}[http://pioz.github.com/rplot/Plotter.html].
If you have any issues with rplot please add an issue on GitHub or fork the project and send a pull request.
Copyright © 2010 Enrico Pilotto. See LICENSE for details.