Вам просто нужно создать массив с точками, после этого настройте, как будет выполняться заливка, и затем нарисуйте FillPolygon
, который является сущностью, равной DrawPolygon
, которая является просто контуром.
public void draw(Pen blackPen)
{
Graphics draw = CreateGraphics();
Point[] points = new Point[6];
points[0].X = 0;
points[0].Y = 0;
points[1].X = 150;
points[1].Y = 150;
points[2].X = 0;
points[2].Y = 150;
using (SolidBrush fillvar = new SolidBrush(Color.FromArgb(100, Color.Yellow)))
{
draw.FillPolygon(fillvar, points.ToArray());
draw.DrawPolygon(Pens.DarkBlue, points);
}
}
Если вы хотите нарисовать FillPolygon
внутри чего-либо, как с PictureBox
, вам просто нужно присвоить его Graphics draw
.
Graphics draw = picturebox.CreateGraphics();
Выше приведена лишь практическая иллюстрация того, какработает, взгляните на ваш код.Не хватает только реализации его координат xDiff, yiff, xMid, yMid.
public void draw(Graphics g, Pen blackPen)
{
double xDiff, yDiff, xMid, yMid;
Point[] points = new Point[6];
points[0].X = 50;
points[0].Y = 50;
points[1].X = 150;
points[1].Y = 150;
points[2].X = 0;
points[2].Y = 150;
SolidBrush varbrush = new SolidBrush(Color.FromArgb(100, Color.Yellow));
fillTriangle(g, varbrush, points);
}
Вам нужно будет передать точки в fillTriangle и нарисовать их в этом методе.
public void fillTriangle(Graphics g, Brush varbrush, Point[] points)
{
g.FillPolygon(varbrush, points.ToArray());
g.DrawPolygon(Pens.Red, points);
}