def continuous_line(cls, lane: AbstractLane, surface: WorldSurface, stripes_count: int, longitudinal: float, side: int) -> None: """ Draw a continuous line on one side of a lane, on a surface. :param lane: the lane :param surface: the pygame surface :param stripes_count: the number of stripes that would be drawn if the line was striped :param longitudinal: the longitudinal position of the start of the line [m] :param side: which side of the road to draw [0:left, 1:right] """ starts = [longitudinal + 0 * cls.STRIPE_SPACING] ends = [longitudinal + stripes_count * cls.STRIPE_SPACING + cls.STRIPE_LENGTH] lats = [(side - 0.5) * lane.width_at(s) for s in starts] cls.draw_stripes(lane, surface, starts, ends, lats)
def continuous_curve(cls, lane: AbstractLane, surface: WorldSurface, stripes_count: int, longitudinal: float, side: int) -> None: """ Draw a striped line on one side of a lane, on a surface. :param lane: the lane :param surface: the pygame surface :param stripes_count: the number of stripes to draw :param longitudinal: the longitudinal position of the first stripe [m] :param side: which side of the road to draw [0:left, 1:right] """ starts = longitudinal + np.arange(stripes_count) * cls.STRIPE_SPACING ends = longitudinal + np.arange(stripes_count) * cls.STRIPE_SPACING + cls.STRIPE_SPACING lats = [(side - 0.5) * lane.width_at(s) for s in starts] cls.draw_stripes(lane, surface, starts, ends, lats)