def contours(*values)
		(values = (0..values[0]+1).to_a.map{|i| i.to_f * (@grid.max - @grid.min) / ( values[0]+1) + @grid.min}; values.pop; values.shift) if values.size==1 and values[0].kind_of? Integer
		cons = values.inject({}){|hash, val| hash[val] = []; hash}
# 			p cons
		for i in 0...((@x.size / 2.0).ceil - 1)
			for j in 0...((@y.size / 2.0).ceil - 1)
				analyse_cell(i*2, j*2, cons)
			end
		end
# 			pp cons
		cons.keys.each{|val| cons[val] = connect_contours(cons[val])}
		@last_contours = cons
	end
def contours(*values)
		(values = (0..values[0]+1).to_a.map{|i| i.to_f * (@grid.max - @grid.min) / ( values[0]+1) + @grid.min}; values.pop; values.shift) if values.size==1 and values[0].kind_of? Integer
		cons = values.inject({}){|hash, val| hash[val] = []; hash}
# 			p cons
		for i in 0...((@x.size / 2.0).ceil - 1)
			for j in 0...((@y.size / 2.0).ceil - 1)
				analyse_cell(i*2, j*2, cons)
			end
		end
# 			pp cons
		cons.keys.each{|val| cons[val] = connect_contours(cons[val])}
		@last_contours = cons
	end
Create a series of contours at the given values. Returns a hash of {value => array_of_contours}. The array_of_contours is a an array of arrays, where each array is a list of [x, y] coordinates along the contour.