Мне нужно нарисовать ведро и заполнить его двумя разными жидкими цветами (желтым и красным).
Я дошел до жестко закодированной версии, но мне нужно иметь возможность указать% заполненного сегмента, например, 50% желтого и 10% красного.
Я никогда не делал графику в C #, поэтому любая помощь в этом приветствуется. Я также нуждаюсь в более чистом способе сделать дно ковша, так как он рисует черную линию поверх желтого в следующем примере.
private Bitmap drawBucket2()
{
Bitmap img = new Bitmap(200, 200);
using (Graphics g = Graphics.FromImage(img))
{
try
{
Pen penBlack = new Pen(Color.Black, 1);
Pen penYellow = new Pen(Color.Yellow, 1);
Brush brushYellow = new SolidBrush(Color.Yellow);
Brush brushRed = new SolidBrush(Color.Red);
Point[] pts = new Point[4];
pts[0] = new Point(11, 115);
pts[1] = new Point(170, 115);
pts[2] = new Point(162, 180);
pts[3] = new Point(21, 180);
g.FillEllipse(brushYellow, 11, 90, 160, 50);
g.FillPolygon(brushYellow, pts);
pts = new Point[3];
pts[0] = new Point(21, 180);
pts[1] = new Point(91, 195);
pts[2] = new Point(162, 180);
g.FillClosedCurve(brushYellow, pts);
/*outline */
g.DrawEllipse(penBlack, 2, 10, 180, 50);
g.DrawLine(penBlack, 1, 35, 21, 180);
g.DrawLine(penBlack, 182, 35, 162, 180);
pts = new Point[3];
pts[0] = new Point(21, 180);
pts[1] = new Point(91, 195);
pts[2] = new Point(162, 180);
g.DrawClosedCurve(penBlack, pts);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
return img;
}