Skip to content
Martin Prout edited this page Jul 25, 2015 · 3 revisions

In ruby everything is an object including numeric values

Processing provides degrees(val) and radians(val) as convenience methods, in ruby-processing Numeric has been extended to provide:-

  • val.degrees (eg PI.degrees)
  • val.radians (eg 80.radians)

The Range class has been similary extended to provide the clip method

Usage val = (0...width).clip val where val is the value you want to constrain, this function is used to implement the processing val = constrain(lower, upper, val) functionality. Often it may be more convenient to use clip instead in JRubyArt.

  • map1d(val, range_in, range_out) works like processings map(val, start_in, end_in, start_out, end_out) it just uses ranges instead of discrete values. The processing version is still available, and should not get confused with ruby map function.

NB: ruby Range is not just for numbers see this example.

Library loading

  • load_library :hilbert
  • load_libraries :vbo, :control_panel

The load_library and load_libraries are synonyms, it just looks nicer to use the appropriate form. They allow for the easy loading both java and ruby libraries. Libraries can be in the core JrubyArt library folder or the sketchbook/libraries folder (or similar for Mac), or in an adjacent library folder. You can load local files with require_relative which might be better than using a local library in some cases. You should prefer to use symbol for library as above but string form eg 'vbo' is also supported.

Clone this wiki locally