rotatePoint function

PointD rotatePoint(
  1. PointD point,
  2. PointD center,
  3. double degrees
)

Implementation

PointD rotatePoint(PointD point, PointD center, double degrees) {
  final double angle = (pi / 180) * degrees;
  final double angleCos = cos(angle);
  final double angleSin = sin(angle);

  return PointD(
    ((point.x - center.x) * angleCos) -
        ((point.y - center.y) * angleSin) +
        center.x,
    ((point.x - center.x) * angleSin) +
        ((point.y - center.y) * angleCos) +
        center.y,
  );
}