GDI+: How to fill a triangle?
i want to fill the bottom-left half of a a rectangle (i.e. a triangle):
with a L开发者_运维知识库inearGradient, going from color to transparent:
Filling half a rectangle:
i know the point (x,y), and the size of the rectangle.
If i try using a LinearGradientBrush
, to perform my linear gradient:
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));
The linear gradient brush fills the entire rectangle, which would be fine if it continued to fill the rest of the rectangle with the final (transparent) color; but instead it wraps around:
i have my LinearGradientBrush
how i like, i just want to FillTriangle
or FillPolygon
, rather than FillRectangle
. Except there is no FillTriangle or FillPolygon, only FillRectangle, and FillEllipse.
See also
link text
There is a FillPolygon in the Graphics library. I think you should be able to do it like this:
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)
});
精彩评论