У меня есть две точки, скажем, верхний левый и нижний правый угол прямоугольника, в C ++ .Net. Как создать структуру System.Drawing.Rectangle из этих двух точек в .net? Это должно быть просто, я что-то упустил?
Конструктор Rectangle работает только с заданными точками и размерами, а также с раздельными целочисленными значениями, которые я здесь не учитываю. Это не работает, давая два очка.
Структура Размера также не может быть создана из двух точек простым способом. Вычитание одной точки из другой не определено, что должно дать размер, и я не вижу другой функции, которая делает это.
Так что я должен написать функции для этого сам? Это должно быть просто там.
Вы можете легко создать статический метод, который преобразует ваши две точки в размер, а затем вызовет конструктор прямоугольника, который принимает точку и размер.
Этот ответ в синтаксисе C #, но вы легко сможете преобразовать его в синтаксис C ++ / cli.
public static Rectangle GetRectangle(Point topLeft, Point bottomRight)
{
var size = new Size(topLeft.X-bottomRight.X, topLeft.Y-bottomRight.Y)
return new Rectangle(topLeft, size);
}
Других решений пока нет …