C# 如何将矩形转换为绘图用的点F[]?

C# 如何将矩形转换为绘图用的点F[]?,c#,.net,system.drawing,drawing2d,C#,.net,System.drawing,Drawing2d,我不确定这个问题是否太琐碎,但我需要使用Graphics.DrawImage方法的重载: 我有一个矩形作为目标矩形,所以我需要将矩形转换为点F[],但是这个有点让我困惑,因为它只使用三个点来定义平行四边形 我怎么做呢 提前感谢您不能通过构建数组来创建它吗 从内存中,d是目标矩形F: destPoints[] = new PointF[4] { new PointF(d.Left, d.Top), new PointF(d.Right, d.Top), new PointF(d.Right, d.

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

我有一个矩形作为目标矩形,所以我需要将矩形转换为点F[],但是这个有点让我困惑,因为它只使用三个点来定义平行四边形

我怎么做呢


提前感谢

您不能通过构建数组来创建它吗

从内存中,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) };

你不能仅仅通过构造数组来创建它吗

从内存中,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) };
好的,我在下面的

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)
        };
    }
好的,我在下面的

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

哇,甚至没有注意到顶部、底部、左侧、右侧的属性。如果你需要经常这样做,我会为RectangleF编写一个ToPoints扩展方法来轻松重用它。哇,甚至没有注意到Top、Bottom、Left、Right属性。那就行了如果你需要经常这么做,我会为RectangleF编写一个ToPoints扩展方法以便于重用。他们使用三个点的原因是DrawImage方法基于其他三个点计算第四个点以确保有效的平行图。他们使用三个点的原因是DrawImage方法基于其他三个点计算第四个点以确保有效的平行图。