# transform.py # ------------ # By MWC Contributors # The functions in this module transform data. # None of them are finished; this is your job! def maximum(data): #Returns the largest number in data largest= data[0] for n in data: if n > largest: largest = n return largest def minimum(data): #Returns the smallest number in data smallest= data[0] for n in data: if n < smallest: smallest = n return smallest def bounds(data): #Returns a list of the smallest and largest numbers in data smallest= data[0] largest= data[0] for n in data: if n < smallest: smallest = n if n > largest: largest = n return [smallest,largest] def clamp(value, low, high): # """Clamps a value to a range from low to high. # Returns value if it is between low and high. # If value is lower than low, returns low. If value is higher than high, returns high.""" # if value > high: return high elif value < low: return low else: return value def ratio(value, start, end): """Returns a number from 0.0 to 1.0, representing how far along value is from start to end. The return value is clamped to [0, 1], so even if value is lower than start, the return value will not be lower than 0.0. """ r= (value - start) / (end - start) if start==end: return 0.0 if r < 0.0: return 0.0 elif r > 1.0: return 1.0 else: return r def scale(value, domain_min, domain_max, range_min, range_max): # "Given a value within a domain, returns the scaled equivalent within range." if domain_min == domain_max: return range_min r = (value - domain_min) / (domain_max - domain_min) return range_min + r * (range_max - range_min) def get_x_values(points): # "Returns the first value for each point in points." x_values=[] for i in points: x_values.append(i[0]) return x_values def get_y_values(points): # "Returns the second value for each point in points." y_values = [] for i in points: y_values.append(i[1]) return y_values