code: def clip(self, px, py, w, h, img):
          '''clip an area for display on the map'''
          sx = 0
          sy = 0
  
          if px < 0:
              sx = -px
              w += px
              px = 0
          if py < 0:
              sy = -py
              h += py
              py = 0
          if px+w > img.width:
              w = img.width - px
          if py+h > img.height:
              h = img.height - py
          return (px, py, sx, sy, w, hf clip(self, px, py, w, h, img):
          '''clip an area for display on the map'''
          sx = 0
          sy = 0
  
          if px < 0:
              sx = -px
              w += px
              px = 0
          if py < 0:
              sy = -py
              h += py
              py = 0
          if px+w > img.width:
              w = img.width - px
          if py+h > img.height:
              h = img.height - py
          return (px, py, sx, sy, w, h)
docs: clip an area for display on the map