public void CalculateDistancesList(double targetLength, bool isOtherwiseClock) { double trueLength = targetLength - SingleWPF.Instance.SelectedBarDiameter * SingleWPF.Instance.DevelopMultiply; double num = Perimeter / trueLength; if (GeomUtil.IsSmallerOrEqual(num, 1)) { double angle1 = (ConvertLength2Angle(SingleWPF.Instance.SelectedBarDiameter) * SingleWPF.Instance.DevelopMultiply); Singleton.Instance.ArcInfos.Add(GetArcInfo2(Math.PI, -Math.PI)); Singleton.Instance.ArcInfos.Last().AddArc(GetArcInfo2(0, -(Math.PI + angle1))); //StandardArcs.Add(new List<Arc> { GetArc(Math.PI, -Math.PI), GetArc(0, -(Math.PI + angle1)) }); return; } double num2 = Perimeter / targetLength; if (GeomUtil.IsSmallerOrEqual(num2, 1)) { double angle1 = (ConvertLength2Angle(targetLength) - Math.PI * 2) / 2; Singleton.Instance.ArcInfos.Add(GetArcInfo2(Math.PI + angle1, -Math.PI)); Singleton.Instance.ArcInfos.Last().AddArc(GetArcInfo2(angle1, -(Math.PI + angle1 * 2))); //StandardArcs.Add(new List<Arc> { GetArc(Math.PI + angle1, -Math.PI), GetArc(angle1, -(Math.PI + angle1*2))}); double angle2 = (ConvertLength2Angle(SingleWPF.Instance.SelectedBarDiameter * SingleWPF.Instance.DevelopMultiply)); Singleton.Instance.ArcInfos.Add(GetArcInfo2(Math.PI + angle2, -angle2 * 2)); //StandardArcs.Add(new List<Arc> { GetArc(Math.PI + angle2, -angle2 * 2) }); return; } num = Math.Floor(num); for (int i = 0; i < num; i++) { Singleton.Instance.ArcInfos.Add(GetArcInfo(Math.PI, i * trueLength, targetLength, isOtherwiseClock)); //StandardArcs.Add(new List<Arc> { GetArc(Math.PI, i * trueLength, targetLength, isOtherwiseClock) }); } Singleton.Instance.ArcInfos.Add(GetArcInfo(Math.PI, num * trueLength, perimeter - num * trueLength + SingleWPF.Instance.SelectedBarDiameter * SingleWPF.Instance.DevelopMultiply, isOtherwiseClock)); //StandardArcs.Add(new List<Arc> { GetArc(Math.PI, num * trueLength, perimeter - num * trueLength + SingleWPF.Instance.SelectedBarDiameter * SingleWPF.Instance.DevelopMultiply, isOtherwiseClock) }); }