如何将RectangleF转换为PointF[]进行绘图

本文关键字:绘图 PointF RectangleF 转换 | 更新日期: 2023-09-27 18:25:23

我不确定这个问题是否太琐碎,但我需要使用以下方法Graphics.DrawImage:的重载

public void DrawImage(
    Image image,
    PointF[] destPoints,
    RectangleF srcRect,
    GraphicsUnit srcUnit,
    ImageAttributes imageAttr
)

我有一个RectangleF作为目标矩形,所以我需要将RectangleF转换为PointF[],但MSDN中的例子让我有点困惑,因为它只使用三个点来定义平行四边形。

我该怎么做?

提前感谢

如何将RectangleF转换为PointF[]进行绘图

好的,我在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是目的地矩形F:

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) };