Как преобразовать RectangleF в PointF[] для рисования?
Я не уверен, что вопрос слишком тривиальный, но мне нужно использовать следующую перегрузку метода Graphics.DrawImage
:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
у меня есть RectangleF
как целевой прямоугольник, поэтому мне нужно преобразовать RectangleF
в PointF[]
но пример в MSDN немного смутил меня, потому что он использует только три точки для определения параллелограмма.
Как я мог это сделать?
заранее спасибо
2 ответа
Хорошо, я нашел это в MSDN:
Параметр destPoints указывает три точки параллелограмма. Три структуры PointF представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертая точка экстраполируется из первых трех, чтобы сформировать параллелограмм.
Таким образом, вы можете построить свой массив точек следующим образом:
private PointF[] GetPoints(RectangleF rectangle)
{
return new PointF[3]
{
new PointF(rectangle.Left, rectangle.Top),
new PointF(rectangle.Right, rectangle.Top),
new PointF(rectangle.Left, rectangle.Bottom)
};
}
Не могли бы вы создать его, просто создав массив?
(Из памяти), где d - пункт назначения RectangleF:
destPoints[] = new PointF[4] { new PointF(d.Left, d.Top), new PointF(d.Right, d.Top), new PointF(d.Right, d.Bottom), new PointF(d.Left, d.Bottom) };