class Gruff::BarConversion

Original Author: David Stokar

    This class perfoms the y coordinats conversion for the bar class.

    There are three cases: 

1. Bars all go from zero in positive direction
            2. Bars all go from zero to negative direction       
            3. Bars either go from zero to positive or from zero to negative

Attributes

graph_height[W]
graph_top[W]
minimum_value[W]
mode[W]
spread[W]
zero[W]

Public Instance Methods

get_left_y_right_y_scaled(data_point, result) click to toggle source
# File lib/gruff/bar_conversion.rb, line 20
def get_left_y_right_y_scaled(data_point, result)
  case @mode
  when 1 then # Case one
              # minimum value >= 0 ( only positiv values )
    result[0] = @graph_top + @graph_height*(1 - data_point) + 1
    result[1] = @graph_top + @graph_height - 1
  when 2 then # Case two
              # only negativ values
    result[0] = @graph_top + 1
    result[1] = @graph_top + @graph_height*(1 - data_point) - 1
  when 3 then # Case three
              # positiv and negativ values
    val = data_point-@minimum_value/@spread
    if data_point >= @zero
      result[0] = @graph_top + @graph_height*(1 - (val-@zero)) + 1
      result[1] = @graph_top + @graph_height*(1 - @zero) - 1
    else
      result[0] = @graph_top + @graph_height*(1 - (val-@zero)) + 1
      result[1] = @graph_top + @graph_height*(1 - @zero) - 1
    end
  else
    result[0] = 0.0
    result[1] = 0.0
  end
end