rotate vector
    Args:
      p: point (x, y)
      rad: angle(radian)
      o: origin (x, y)

def rotate(p, rad, o=(0, 0)):
    """ rotate vector
    Args:
      p: point (x, y)
      rad: angle(radian)
      o: origin (x, y)
    """
    v = vector(o, p)
    fx = lambda x, y, d: x * cos(d) - y * sin(d)
    fy = lambda x, y, d: x * sin(d) + y * cos(d)
    rv = fx(v[0], v[1], rad), fy(v[0], v[1], rad)
    return translate(rv, o)