예제 #1
0
        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) });
        }