Files
lab_scatter/transform.py
juddin2 f7cf4b952a I wrote new codes under the comments.
The first few went will for me but when I started to get to the def ratio function everything started getting confusing.
When I was stuck I did try to use my notes from CsE 115 which helped me out a little.
2025-10-05 22:23:45 -04:00

84 lines
2.2 KiB
Python

# 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