Я пытаюсь нарисовать фигуру примерно так:
Мне нужен уникальный элемент для каждого сегмента дуги, на котором я могу обрабатывать события и перекрашивать их по мере необходимости. Я немного не уверен, как создать правильную геометрию в WPF. Я могу легко рассчитать четыре точки для каждого сегмента дуги из радиуса окружностей и угла от центра. Используя радиус 100 для внешнего круга и 50 для внутреннего, четыре точки красного цвета (по часовой стрелке от верхнего левого угла с началом в верхней части круга):
0,0
70,30
35,65
0,50
Используя эти точки, я создаю простой путь для рисования сегмента:
<Path Stroke="Black" Fill="Black" StrokeThickness="1" >
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<ArcSegment Point="70,30" />
<LineSegment Point="35,65" />
<ArcSegment Point="0,50" />
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
Но это просто рисует трапецию с прямыми линиями. Я знаю, что могу изменить размер на ArcSegments, но я не могу понять, как это влияет на кривизну. Я хочу, чтобы дуги следовали за основным кругом, но я не уверен, как это выразить. Как я могу сделать дуги правильной кривизны?
Кроме того, как я могу выразить и добавить пути в коде c #, а не в xaml?