1

我想填充一个矩形(即三角形)的左下半部分:

替代文字

使用 LinearGradient,从颜色变为透明: 替代文字

填充半个矩形:

替代文字

我知道点(x,y)和矩形的大小。

如果我尝试使用LinearGradientBrush, 来执行我的线性渐变:

brush = new LinearGradientBrush(
      MakePoint(0, y), //bottom left corner
      MakePoint(x, 0), //upper right corner
      MakeColor(255, c), //fully opaque color
      MakeColor(0, c)); //fully transparent color
graphics.FillRectangle(brush, MakeRect(0, 0, w, h));

线性渐变画笔填充整个矩形,如果它继续用最终(透明)颜色填充矩形的其余部分就可以了;但相反,它环绕:

替代文字

我有我LinearGradientBrush喜欢的方式,我只想FillTriangleFillPolygon,而不是FillRectangle。除了没有 FillTriangle 或 FillPolygon,只有 FillRectangle 和 FillEllipse。

也可以看看

链接文本

4

1 回答 1

2

Graphics 库中有一个 FillPolygon。我认为你应该能够这样做:

brush = new LinearGradientBrush(
      MakePoint(x, y), 
      MakePoint(0, h), 
      MakeColor(255, c), //fully opaque color
      MakeColor(0, c)); //fully transparent color

graphics.FillPolygon(brush, new PointF[] {
        new PointF(0, 0),
        new PointF(0, h),
        new PointF(w, h)
    });
于 2011-01-19T15:36:14.410 回答