The MathTool and HelperMethods modules implement some of the processing convenience methods

color method

A convenience method that returns a ‘color’ int for processing

color(*args)           # where args can be a hex string, a hexadecimal number, etc. see examples
color('#CC6600')       # hexadecimal string, can be lower-case
color(0xFFCC6600)      # hexadecimal
color(255)             # white
color(0)               # black
color(255, 0, 0)       # red
color(0, 0, 255)       # blue
color(0, 0, 255, 100)  # blue with alpha value 100

Example Usages: Creating, Blend Color

hsb_color method

A convenience method that returns a ‘color’ int for processing for hsb input, where hue, saturation and brightness are in range 0..1.0

hsb_color(hue, sat, bright) # where args are ruby float

web_to_color_array method

A convenience method that converts an array of web color strings to an array of ‘color’ int. Particularly useful when working with the Joshua Davis Processing-HYPE library.

WEB = %w(#CC6600 #CC9900 #FFFFFF).freeze
web_to_color_array(WEB)
# output = [-3381760, -3368704, -1]

see usage in a Wordcram sketch

p52ruby

A convenience method that converts an array of ‘color’ int to a ruby string that you can use in your Wordcram or Hype sketches (say from a ColorHarmony sketch)

p52ruby([-3381760, -3368704, -1])
# output = "%w(#CC6600 #CC9900 #FFFFFF)\n"

For toxiclibs we have created a new method to_ruby_string for the ColorList class that does the same thing for a collection of TColor See this toxiclibs sketch where we use color theory to generate a sketch palette.

map1d method

A replacement for processings map function, maps val (range1) to range2 using a linear transform.

map1d(val, range1, range2) # where val is an input float range1 is source and range2 is target
# simple example
map1d(10, (0..20), (0..1.0)) # returns 0.5

Example Usages: Mandelbrot, Game of Life

radians and degrees methods

A replacement for processings radians(x) and degree(x) methods in ruby everything is an object!!

x.radians # we did this by monkey patching ruby numeric
x.degrees

Note: ruby already provides x.abs, x.to_s, and x.to_f replacing abs(x), str(x), and float(x) etc

Example Usages: bezier ellipse, brick tower

Processing max and min convenience methods

We make these methods available in propane, by mocking them using ruby Enumerable max and min methods, you may prefer to use the Enumerable methods directly since they are more flexible (you can even provide a comparator block to change basis of ordering).

find_method method

A convenient way of finding a method

find_method(method) # where method is a method name or fragment
# simple example
puts find_method('map') # see output below
constrained_map
map1d
p5map