+
+Point Geometry::RotatePointAroundPoint(Point point, Point rotationPoint, double angle)
+{
+ Vector v = Vector(point, rotationPoint);
+ double px = (v.x * cos(angle)) - (v.y * sin(angle));
+ double py = (v.x * sin(angle)) + (v.y * cos(angle));
+
+ return Vector(rotationPoint.x + px, rotationPoint.y + py, 0);
+}
+