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

时间:2012-02-22 20:12:56

标签: c# .net system.drawing drawing2d

我不确定这个问题是否过于简单,但我需要使用方法Graphics.DrawImage的{​​{3}}重载:

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

我有RectangleF作为目标矩形,因此我需要将RectangleF转换为PointF[],但following让我感到困惑,因为它只使用了三个点定义平行四边形。

我怎么能这样做?

提前致谢

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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