The maximum “resolution” for colour math; if any value is less than or equal to this value, it is treated as zero.
The tolerance for comparing the components of two colours. In general, colours are considered equal if all of their components are within this tolerance value of each other.
Returns true if the value is within COLOR_EPSILON of one.
# File lib/color.rb, line 34 def near_one?(value) near_zero?(value - 1.0) end
Returns true if the value is within COLOR_EPSILON of one or more than one.
# File lib/color.rb, line 40 def near_one_or_more?(value) (value > 1.0 or near_one?(value)) end
Returns true if the value is less than COLOR_EPSILON.
# File lib/color.rb, line 23 def near_zero?(value) (value.abs <= COLOR_EPSILON) end
Returns true if the value is within COLOR_EPSILON of zero or less than zero.
# File lib/color.rb, line 29 def near_zero_or_less?(value) (value < 0.0 or near_zero?(value)) end
Provides a thin veneer over the Color module to make it seem like this is Color 0.1.0 (a class) and not Color 1.4 (a module). This “constructor” will be removed in the future.
mode = :hsl |
values must be an array of [ hue deg, sat %, lum % ]. A Color::HSL object will be created. |
mode = :rgb |
values will either be an HTML-style colour string or an array of [ red, green, blue ] (range 0 .. 255). A Color::RGB object will be created. |
mode = :cmyk |
values must be an array of [ cyan %, magenta %, yellow %, black % ]. A Color::CMYK object will be created. |
# File lib/color.rb, line 116 def self.new(values, mode = :rgb) warn "Color.new has been deprecated. Use Color::#{mode.to_s.upcase}.new instead." color = case mode when :hsl Color::HSL.new(*values) when :rgb values = [ values ].flatten if values.size == 1 Color::RGB.from_html(*values) else Color::RGB.new(*values) end when :cmyk Color::CMYK.new(*values) end color.to_hsl end
Normalizes the value to the range (0.0) .. (1.0).
# File lib/color.rb, line 45 def normalize(value) if near_zero_or_less? value 0.0 elsif near_one_or_more? value 1.0 else value end end
Normalize the value to the range (0) .. (255).
# File lib/color.rb, line 69 def normalize_byte(value) normalize_to_range(value, 0..255).to_i end
# File lib/color.rb, line 56 def normalize_to_range(value, range) range = (range.end..range.begin) if (range.end < range.begin) if value <= range.begin range.begin elsif value >= range.end range.end else value end end
Normalize the value to the range (0) .. (65535).
# File lib/color.rb, line 75 def normalize_word(value) normalize_to_range(value, 0..65535).to_i end
Generated with the Darkfish Rdoc Generator 2.