Special thanks to OriginalGriff
Public Function RotatePoints2(_Points() As Point, _CenterPoint As Point, _Degree As Double) As Point()
Dim Output() As Point = _Points.Clone()
Dim Angle As Double = (_Degree / 180.0) * Math.PI
For Index As Integer = 0 To Output.Length - 1
Dim Dx As Integer = (Output(Index).X - _CenterPoint.X)
Dim Dy As Integer = (Output(Index).Y - _CenterPoint.Y)
Output(Index).X = (Math.Cos(Angle) * Dx) - (Math.Sin(Angle) * Dy) + _CenterPoint.X
Output(Index).Y = (Math.Sin(Angle) * Dx) + (Math.Cos(Angle) * Dy) + _CenterPoint.Y
Next
Return Output
End Function