rplot¶ ↑
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.
Requirements¶ ↑
-
libplot-dev
For Debian/Ubuntu users: apt-get install libplot-dev
.
For Max OS X users use port: port install plotutils
.
Installation¶ ↑
gem install rplot
Usage¶ ↑
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].
Questions or problems?¶ ↑
If you have any issues with rplot please add an issue on GitHub or fork the project and send a pull request.
Copyright¶ ↑
Copyright © 2010 Enrico Pilotto. See LICENSE for details.