rotate method

Point<double> rotate(
  1. num radians
)

Create a new Point whose x and y values are rotated clockwise by radians.

Implementation

Point<double> rotate(num radians) {
  if (radians != 0.0) {
    final cosTheta = cos(radians);
    final sinTheta = sin(radians);
    final nx = (cosTheta * x) + (sinTheta * y);
    final ny = (cosTheta * y) - (sinTheta * x);

    return Point<double>(nx, ny);
  }

  return toDoublePoint();
}