Вам нужно будет построить строку, которая идентифицирует путь, используя дугу, которая поддерживается WPF.
Строка соответствует синтаксису на этой странице .
Однако параметры должны быть сначала преобразованы в формат дуги, указанный в синтаксисе,
поскольку используемые значения немного отличаются:
Сначала преобразуйте углы a1
и a2
в радианы, если их еще нет.
a1=a1*Math.PI/180;
a2=a2*Math.PI/180;
Затем рассчитайте начальную и конечную точку дуги:
double startX = centerX+Math.Cos(a1)*r;
double startY = centerY+Math.Sin(a1)*r;
double endX = centerX+Math.Cos(a2)*r;
double endY = centerY+Math.Sin(a2)*r;
Затем вычислите, равна ли разница между углами PI или больше, чем a1 меньше, чем a2.
bool largeArc = Math.Abs(a2-a1)>=Math.PI;
bool sweep = (a1<a2);
Наконец, постройте путь.
string path=String.Format(System.Globalization.CultureInfo.InvariantCulture,
"M {0},{1} A {2},{3} 0 {4} {5} {6},{7}",startX,startY,r,r,
largeArc ? 1 : 0, sweep ? 1 : 0,endX,endY);
Это строка пути, а не объект Path, который вы будете использовать при определении пути.