diff --git a/system/ui/onroad/driver_state.py b/system/ui/onroad/driver_state.py index b998936903..7527fa6255 100644 --- a/system/ui/onroad/driver_state.py +++ b/system/ui/onroad/driver_state.py @@ -27,6 +27,9 @@ ARC_THICKNESS_EXTEND = 12.0 SCALES_POS = np.array([0.9, 0.4, 0.4], dtype=np.float32) SCALES_NEG = np.array([0.7, 0.4, 0.4], dtype=np.float32) +ARC_POINT_COUNT = 37 # Number of points in the arc +ARC_ANGLES = np.linspace(0.0, np.pi, ARC_POINT_COUNT, dtype=np.float32) + @dataclass class ArcData: """Data structure for arc rendering parameters.""" @@ -57,8 +60,8 @@ class DriverStateRenderer: # Pre-allocate drawing arrays self.face_lines = [rl.Vector2(0, 0) for _ in range(len(DEFAULT_FACE_KPTS_3D))] - self.h_arc_lines = [rl.Vector2(0, 0) for _ in range(37)] # 37 points for horizontal arc - self.v_arc_lines = [rl.Vector2(0, 0) for _ in range(37)] # 37 points for vertical arc + self.h_arc_lines = [rl.Vector2(0, 0) for _ in range(ARC_POINT_COUNT)] + self.v_arc_lines = [rl.Vector2(0, 0) for _ in range(ARC_POINT_COUNT)] # Load the driver face icon self.dm_img = gui_app.texture("icons/driver_face.png", IMG_SIZE, IMG_SIZE) @@ -218,9 +221,7 @@ class DriverStateRenderer: ) # Pre-calculate arc points - start_rad = np.deg2rad(start_angle) - end_rad = np.deg2rad(start_angle + 180) - angles = np.linspace(start_rad, end_rad, 37) + angles = ARC_ANGLES + np.deg2rad(start_angle) center_x = x + arc_data.width / 2 center_y = y + arc_data.height / 2