use Rectangle2D.Double instead of int-base Rectangle when calculating zoom-all transform