static void Main(string[] args) { RotatedRect rotatedRect = new RotatedRect(new Point2f(100f, 100f), new Size2f(100, 100), 45f); Console.WriteLine(rotatedRect.BoundingRect()); Console.WriteLine(rotatedRect.Points().Length); Console.WriteLine(rotatedRect.Points()[0]); }
/// <summary>Повёрнутый прямоугольник в обычный с отслеживанием чтобы он не вышел за границы матрицы</summary> /// <param name="s">Преобразуемый RotatedRect</param> /// <returns>Rect, преобразованный из RotatedRect</returns> private Rect ToRect(RotatedRect s) { var rect = s.BoundingRect(); if (rect.X < 0) { rect.Width += rect.X; rect.X = 0; } if (rect.Y < 0) { rect.Height += rect.Y; rect.Y = 0; } return(rect); }