Вопрос

Я не уверен, что вопрос слишком тривиален, но мне нужно использовать следующий перегрузка метода 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) };
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top