You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Martin Prout edited this page Jul 25, 2015
·
12 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 vanilla processing versions are no longer available since ruby-processing-2.6.0
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 (since ruby-processing-2.6.3). Often it may be more convenient to use clip instead in ruby-processing.
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 :vecmath
load_libraries :fastmath, :vecmath
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 ruby-processings library folder or the sketchbook/libraries folder (or similar for Mac), or in an adjacent library folder. Since ruby-1.9.3 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 'vecmath' is also supported.