private void Button_Click(object sender, RoutedEventArgs e)
{
parts++;
double centerX = 150;
double centerY = 150;
double radius = 100;
DrawingGroup group = new DrawingGroup();
double angleStep = 2 * Math.PI / parts;
for (int i = 0; i < parts; i++)
{
double startAngle = i * angleStep;
double endAngle = startAngle + angleStep;
Point startPoint = new Point(
centerX + radius * Math.Cos(startAngle),
centerY + radius * Math.Sin(startAngle));
Point endPoint = new Point(
centerX + radius * Math.Cos(endAngle),
centerY + radius * Math.Sin(endAngle));
PathFigure figure = new PathFigure
{
StartPoint = new Point(centerX, centerY),
IsClosed = true
};
figure.Segments.Add(new LineSegment(startPoint, true));
figure.Segments.Add(new ArcSegment(
endPoint,
new Size(radius, radius),
0,
angleStep > Math.PI,
SweepDirection.Clockwise,
true));
figure.Segments.Add(new LineSegment(
new Point(centerX, centerY), true));
PathGeometry geometry = new PathGeometry();
geometry.Figures.Add(figure);
GeometryDrawing drawing = new GeometryDrawing
{
Geometry = geometry,
Brush = GetBrush(i),
Pen = new Pen(Brushes.Black, 1)
};
group.Children.Add(drawing);
}
MyImage.Source = new DrawingImage(group);
}