diff --git a/mplbasketball/court.py b/mplbasketball/court.py index 7a4a613..45dbdc4 100644 --- a/mplbasketball/court.py +++ b/mplbasketball/court.py @@ -82,6 +82,7 @@ def __init__(self, court_type="nba", origin="top-left", units="ft"): "bottom-left", "top-right", "bottom-right", + "hoop" ], "Invalid origin. Choose from 'center', '(top/bottom)-(left/right)'" assert units in ["m", "ft"], "Invalid units. Currently only 'm' and 'ft' are supported" @@ -119,6 +120,12 @@ def __init__(self, court_type="nba", origin="top-left", units="ft"): -self.court_parameters["court_dims"][1] / 2, ] ) + elif origin == "hoop": + self.origin = np.array([ + (self.court_parameters['court_dims'][0] / 2) - + self.court_parameters['hoop_distance_from_edge'], + 0.0 + ]) def draw( self, diff --git a/mplbasketball/utils.py b/mplbasketball/utils.py index 082419e..a74c1fa 100644 --- a/mplbasketball/utils.py +++ b/mplbasketball/utils.py @@ -1,4 +1,4 @@ -def transform(x, y, fr, to, origin, court_dims=[94.0, 50.0]): +def transform(x, y, fr, to, origin, court_parameters): """ Function to transform a set of x, y values to match orientations desired for plotting. @@ -28,13 +28,18 @@ def transform(x, y, fr, to, origin, court_dims=[94.0, 50.0]): if origin == "center": center_court = [0.0, 0.0] elif origin == "top-left": - center_court = [court_dims[0] / 2, -court_dims[1] / 2] + center_court = [court_parameters['court_dims'][0] / 2, -court_parameters['court_dims'][1] / 2] elif origin == "bottom-left": - center_court = [court_dims[0] / 2, court_dims[1] / 2] + center_court = [court_parameters['court_dims'][0] / 2, court_parameters['court_dims'][1] / 2] elif origin == "top-right": - center_court = [-court_dims[0] / 2, -court_dims[1] / 2] + center_court = [-court_parameters['court_dims'][0] / 2, -court_parameters['court_dims'][1] / 2] elif origin == "bottom-right": - center_court = [-court_dims[0] / 2, court_dims[1] / 2] + center_court = [-court_parameters['court_dims'][0] / 2, court_parameters['court_dims'][1] / 2] + elif origin == "hoop": + center_court = [ + - (court_parameters['court_dims'][0] / 2) + court_parameters['hoop_distance_from_edge'], + 0.0 + ] if fr == to: return x, y