Как заполнить прямоугольник в C # с помощью ограничивающих рамок - PullRequest
0 голосов
/ 06 июня 2019

Я перечислил ограничивающие рамки X вверху слева, Y вверху слева, X вверху справа, Y вверху справа, X внизу справа, Y внизу справа, X внизу слева, Y внизу слева

Необходимо создать прямоугольник заливкина изображении.

Как вычислить x, y, ширину и высоту для прямоугольника

Использовали Pen и DrawRectangle

 Bitmap bmp = (Bitmap)Bitmap.FromFile(imageFilePath);
 Graphics g = Graphics.FromImage(bmp);
 Pen snowPen = new Pen(Color.Black, width);
 g.DrawRectangle(snowPen, x , y , width, height);

Как преобразовать данные ограничивающих прямоугольников вполучить x, y, высоту и ширину?

1 Ответ

1 голос
/ 06 июня 2019

Если вы посмотрите документацию DrawRectangle здесь , чтобы узнать, как выражаются x и y:

X-координата левого верхнего угла прямоугольника для рисования.

Y-координата левого верхнего угла прямоугольника для рисования.

И исходя из того, что вы упомянули, что ваша входная информация: X top left, Y top left, X top right, Y top right, X bottom right , Y bottom right , X bottom left , Y bottom left

Тогда:

  • x = X вверху слева
  • y = Y вверху слева
  • Высота = (Y вверху слева - Y внизу слева) или Y вверху справа - Y внизу справа: если у вас есть значение ограничивающего прямоугольника, которое было прямоугольником, значения равны)
  • Ширина = (X вверху справа - X вверху слева) или X внизу справа - X внизу слева: если у вас есть значение ограничивающего прямоугольника, которое было прямоугольником, значения равны)

Примечания:

  • Поскольку вы не упомянули, как выражались значения вашего ограничивающего прямоугольника (int? Float?), Имейте в виду, что здесь ваши значения должны быть значениями типа int.
  • Если ваша ограничительная рамка не является прямоугольником, вы должны использовать DrawPolygon вместо
...