Как преобразовать 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) };
Другие вопросы по тегам