'Return the codes and vertices for a rotated, scaled, and translated
90 degree arc.
Optional keyword arguments:
Keyword           Description
*quadrant*        uses 0-based indexing (0, 1, 2, or 3)
*cw*              if True, clockwise
*center*          (x, y) tuple of the arc\'s center'

def _arc(self, quadrant=0, cw=True, radius=1, center=(0, 0)):

    ARC_CODES = [Path.LINETO, Path.CURVE4, Path.CURVE4, Path.CURVE4, Path.CURVE4, Path.CURVE4, Path.CURVE4]
    ARC_VERTICES = np.array([[1.0, 0.0], [1.0, 0.265114773], [0.894571235, 0.519642327], [0.707106781, 0.707106781], [0.519642327, 0.894571235], [0.265114773, 1.0], [0.0, 1.0]])
    if ((quadrant == 0) or (quadrant == 2)):
        if cw:
            vertices = ARC_VERTICES
        else:
            vertices = ARC_VERTICES[:, ::(-1)]
    elif ((quadrant == 1) or (quadrant == 3)):
        if cw:
            vertices = np.column_stack(((- ARC_VERTICES[:, 1]), ARC_VERTICES[:, 0]))
        else:
            vertices = np.column_stack(((- ARC_VERTICES[:, 0]), ARC_VERTICES[:, 1]))
    if (quadrant > 1):
        radius = (- radius)
    return list(zip(ARC_CODES, ((radius * vertices) + np.tile(center, (ARC_VERTICES.shape[0], 1)))))
