getRotatedDimensions function
Implementation
List<double> getRotatedDimensions(
double angleInDegrees,
double width,
double height,
) {
double angle = angleInDegrees * pi / 180;
double sinValue = sin(angle);
double cosValue = cos(angle);
double x1 = cosValue * width;
double y1 = sinValue * width;
double x2 = -sinValue * height;
double y2 = cosValue * height;
double x3 = cosValue * width - sinValue * height;
double y3 = sinValue * width + cosValue * height;
List<double> sortX = <double>[0.0, x1, x2, x3];
sortX.sort();
List<double> sortY = <double>[0.0, y1, y2, y3];
sortY.sort();
double minX = sortX.first;
double maxX = sortX.last;
double minY = sortY.first;
double maxY = sortY.last;
return [((maxX - minX)).floorToDouble(), ((maxY - minY)).floorToDouble()];
}