Module: GeoPattern::PatternHelpers
- Defined in:
 - lib/geo_pattern/pattern_helpers.rb
 
Class Method Summary collapse
- .generate_rgb_string(rgb) ⇒ Object
 - .hex_val(hash, index, length) ⇒ Object
 - .html_to_rgb(color) ⇒ Object
 - .html_to_rgb_for_string(seed, base_color) ⇒ Object
 - 
  
    
      .map(value, v_min, v_max, d_min, d_max)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Ruby implementation of Processing’s map function processing.org/reference/map_.html.
 
Class Method Details
.generate_rgb_string(rgb) ⇒ Object
      36 37 38 39 40 41 42  | 
    
      # File 'lib/geo_pattern/pattern_helpers.rb', line 36 def generate_rgb_string(rgb) r = (rgb.r * 255).round g = (rgb.g * 255).round b = (rgb.b * 255).round format('rgb(%d, %d, %d)', r, g, b) end  | 
  
.hex_val(hash, index, length) ⇒ Object
      3 4 5  | 
    
      # File 'lib/geo_pattern/pattern_helpers.rb', line 3 def hex_val(hash, index, length) hash[index, length || 1].to_i(16) end  | 
  
.html_to_rgb(color) ⇒ Object
      17 18 19  | 
    
      # File 'lib/geo_pattern/pattern_helpers.rb', line 17 def html_to_rgb(color) generate_rgb_string(::Color::RGB.from_html(color)) end  | 
  
.html_to_rgb_for_string(seed, base_color) ⇒ Object
      21 22 23 24 25 26 27 28 29 30 31 32 33 34  | 
    
      # File 'lib/geo_pattern/pattern_helpers.rb', line 21 def html_to_rgb_for_string(seed, base_color) hue_offset = map(seed.to_i(14, 3), 0, 4095, 0, 359) sat_offset = seed.to_i(17, 1) base_color = ::Color::RGB.from_html(base_color).to_hsl base_color.hue = base_color.hue - hue_offset if (sat_offset % 2 == 0) base_color.saturation = base_color.saturation + sat_offset else base_color.saturation = base_color.saturation - sat_offset end generate_rgb_string(base_color.to_rgb) end  | 
  
.map(value, v_min, v_max, d_min, d_max) ⇒ Object
Ruby implementation of Processing’s map function processing.org/reference/map_.html
      9 10 11 12 13 14 15  | 
    
      # File 'lib/geo_pattern/pattern_helpers.rb', line 9 def map(value, v_min, v_max, d_min, d_max) # v for value, d for desired v_value = value.to_f # so it returns float v_range = v_max - v_min d_range = d_max - d_min (v_value - v_min) * d_range / v_range + d_min end  |