code: func (s *projector) pt(p image.Point) image.Point {
  	return image.Point{
  		clamp(s.rx*float64(p.X)+s.dx, s.r.Min.X, s.r.Max.X),
  		clamp(s.ry*float64(p.Y)+s.dy, s.r.Min.Y, s.r.Max.Y),
  	}
  }
docs: // pt projects p from the source rectangle onto the target rectangle.