Как преобразовать массив точки в прямоугольник

У меня есть Array of Point и я хочу сделать Rectangle. Есть 4 балла. Я рисую эти точки как Polygon а вывод - Rectangle. Как я могу нарисовать эти четыре точки как Rectangle? Смысл, я хочу получить ширину и высоту этих точек.

Это мои четыре момента:

p1 :48.5, 196.5
 p2 :997.5, 196.5
 p2 :997.5, 692.5
 p2 :48.5, 692.5

Поэтому я хочу что-то вроде этого:

RectangleF rec = new RectangleF(x, y, width, hight);

Мои x и y - p1.x, p1.y Как я могу получить ширину и высоту из этих точек?

RectangleF rec = new RectangleF(p1.x, p1.y, width, hight);
2 ответа

При условии, что:

Point p1 = new Point(48.5, 196.5);
Point p2 = new Point(997.5, 196.5);
Point p3 = new Point(997.5, 692.5);
Point p4 = new Point(48.5, 692.5);

Вы можете создать Rectangle следующим образом:

RectangleF rec = new RectangleF(p1.X, p1.Y, p2.X - p1.X, p3.Y - p1.Y);


Альтернативное решение с использованием GraphicsPath()

using (GraphicsPath path = new GraphicsPath())
{
 PointF[] points = new PointF[] {
 new PointF(48.5f, 196.5f),
 new PointF(997.5f, 196.5f),
 new PointF(997.5f, 692.5f),
 new PointF(48.5f, 692.5f),
 };

 path.StartFigure();
 path.AddPolygon(points);
 path.CloseFigure();
 e.Graphics.DrawPath(new Pen(Color.Black, 2), path);
};

licensed under cc by-sa 3.0 with attribution.