Scale so the new width equals width; aspect preserved, center fixed.
width
Rect scaleToWidth(double width) => scale(width / this.width);