'Rotate (x, y) about ``angle``.
Parameters
x, y : ndarray-like
Input quantities
angle : float (deg) or `~astropy.units.Quantity`
Angle of rotations.'

@classmethod
def evaluate(cls, x, y, angle):

    if (x.shape != y.shape):
        raise ValueError(u'Expected    input    arrays    to    have    the    same    shape')
    orig_shape = (x.shape or (1,))
    if isinstance(x, u.Quantity):
        unit = x.unit
    else:
        unit = None
    inarr = np.array([x.flatten(), y.flatten()])
    if isinstance(angle, u.Quantity):
        angle = angle.value
    result = np.dot(cls._compute_matrix(angle), inarr)
    (x, y) = (result[0], result[1])
    x.shape = y.shape = orig_shape
    if (unit is not None):
        return (u.Quantity(x, unit=unit), u.Quantity(y, unit=unit))
    else:
        return (x, y)
