inscribe method
Returns a rect of the given size, aligned within given rect as specified by this alignment.
For example, a 100×100 size inscribed on a 200×200 rect using Alignment.topLeft would be the 100×100 rect at the top left of the 200×200 rect.
Implementation
Rect inscribe(Size size, Rect rect) {
  final double halfWidthDelta = (rect.width - size.width) / 2.0;
  final double halfHeightDelta = (rect.height - size.height) / 2.0;
  return Rect.fromLTWH(
    rect.left + halfWidthDelta + x * halfWidthDelta,
    rect.top + halfHeightDelta + y * halfHeightDelta,
    size.width,
    size.height,
  );
}