docs: def _draw_circle(self, pos_x, pos_y, radius, depth, stroke_width=1., fill_color=None, border_color=None,
                       from_angle=0., to_angle=2 * pi):
          """Draws a circle
  
          Draws a circle with a line segment a desired position with desired size.
  
          :param float pos_x: Center x position
          :param float pos_y: Center y position
          :param float depth: The Z layer
          :param float radius: Radius of the circle
          """
  
          visible = False
          # Check whether circle center is in the viewport
          if not self.point_outside_view((pos_x, pos_y)):
              visible = True
          # Check whether at least on point on the border of the circle is within the viewport
          if not visible:
              for i in range(0, 8):
                  angle = 2 * pi / 8. * i
                  x = pos_x + cos(angle) * radius
                  y = pos_y + sin(angle) * radius
                  if not self.point_outside_view((x, y)):
                      visible = True
                      break
          if not visible:
              return False
  
          angle_sum = to_angle - from_angle
          if angle_sum < 0:
              angle_sum = float(to_angle + 2 * pi - from_angle)
          segments = self.pixel_to_size_ratio() * radius * 1.5
          segments = max(4, segments)
          segments = int(round(segments * angle_sum / (2. * pi)))
  
          types = []
          if fill_color is not None:
              types.append(GL_POLYGON)
          if border_color is not None:
              types.append(GL_LINE_LOOP)
  
          for type in types:
              if type == GL_POLYGON:
                  fill_color.set()
              else:
                  self._set_closest_stroke_width(stroke_width)
                  border_color.set()
              glBegin(type)
              angle = from_angle
              for i in range(0, segments):
                  x = pos_x + cos(angle) * radius
                  y = pos_y + sin(angle) * radius
                  glVertex3f(x, y, depth)
                  angle += angle_sum / (segments - 1)
                  if angle > 2 * pi:
                      angle -= 2 * pi
                  if i == segments - 2:
                      angle = to_angle
              glEnd()
  
          return True