docs: 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)