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したいだけです。FillTriangleまたはFillPolygonがなく、FillRectangleとFillEllipseのみがあることを除いて。FillTriangleFillPolygonFillRectangle

も参照してください

リンクテキスト

4

1 に答える 1

2

グラフィックライブラリには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 に答える