def draw_line(
        self,
        line_pts,
        color="#ff0000",
        robot_coordinates=False,
        relative_to_first=False,
        arrow=True,
        scale=(1, 1),
        **kwargs
    ):
        """
            :param line_pts: A list of (x,y) pairs to draw. (x,y) are in field units
                             which are measured in feet
            :param color: The color of the line, expressed as a 6-digit hex color
            :param robot_coordinates: If True, the pts will be adjusted such that
                                      the first point starts at the center
                                      of the robot and that x and y coordinates
                                      are rotated according to the robot's
                                      current heading. If a tuple, then the pts
                                      are adjusted relative to the robot center
                                      AND the x,y in the tuple
            :param relative_to_first: If True, the points will be adjusted such
                                      that the first point is considered to be
                                      (0,0)
            :param arrow: If True, draw the line with an arrow at the end
            :param scale: Multiply all points by this (x,y) tuple
            :param kwargs: Keyword options to pass to tkinter.create_line
        """

        def _defer():  # called later because the field might not exist yet
            px_per_ft = UserRenderer._global_ui.field.px_per_ft
            if arrow:
                kwargs["arrow"] = "last"
            sx, sy = scale
            line = DrawableLine(
                [(x * px_per_ft * sx, y * px_per_ft * sy) for x, y in line_pts],
                color,
                kwargs,
            )

            # if relative to first, create object, then move relative to the first
            if relative_to_first:
                line.move((-line.pts[0][0], -line.pts[0][1]))

            if robot_coordinates:
                self._do_robot_coordinates(line, robot_coordinates)

            line.update_coordinates()
            UserRenderer._global_ui.field.add_moving_element(line)
            self._elements.append(line)

        self._run(_defer)