rotatePoint function
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,
);
}