コード例 #1
0
ファイル: EpureM.cs プロジェクト: nikolay199213/TestDxfWPF
 public EpureM(int length)
 {
     epureLines = new EpureLine[length];
     for (int i = 0; i < length; i++)
     {
         epureLines[i] = new EpureLine();
     }
 }
コード例 #2
0
ファイル: EpureM.cs プロジェクト: nikolay199213/TestDxfWPF
 public EpureM(Line[] lines)
 {
     epureLines = new EpureLine[lines.Length];
     for (int i = 0; i < lines.Length; i++)
     {
         epureLines[i] = new EpureLine(lines[i]);
     }
 }
コード例 #3
0
ファイル: EpureLine.cs プロジェクト: nikolay199213/TestDxfWPF
 public EpureLine(EpureLine epureLine)
 {
     Length       = epureLine.Length;
     StartPoint   = epureLine.StartPoint;
     MiddleMoment = epureLine.MiddleMoment;
     EndMoment    = epureLine.EndMoment;
     Rigidity     = epureLine.Rigidity;
     StartPoint   = epureLine.StartPoint;
     EndPoint     = epureLine.EndPoint;
 }
コード例 #4
0
ファイル: EpureM.cs プロジェクト: nikolay199213/TestDxfWPF
        /// <summary>
        /// Перемножение эпюр(массивов участков)
        /// </summary>
        /// <returns></returns>
        public static double MultiplicationEpure(EpureM m1EpureLines, EpureM m2EpureLines)
        {
            double sum = 0;

            for (int i = 0; i < m1EpureLines.epureLines.Length; i++)
            {
                sum += EpureLine.MultiplicationEpureLine(m1EpureLines.epureLines[i], m2EpureLines.epureLines[i]);
            }

            return(sum);
        }
コード例 #5
0
ファイル: EpureM.cs プロジェクト: nikolay199213/TestDxfWPF
        public static EpureM SumEpureM(params EpureM[] epureMs)
        {
            EpureM newEpureM = new EpureM(epureMs[0].Length);

            for (int i = 0; i < newEpureM.Length; i++)
            {
                for (int j = 0; j < epureMs.Length; j++)
                {
                    newEpureM.epureLines[i] = EpureLine.SumEpureLine(epureMs[j].epureLines[i], newEpureM.epureLines[i]);
                }
            }

            return(newEpureM);
        }
コード例 #6
0
ファイル: EpureLine.cs プロジェクト: nikolay199213/TestDxfWPF
        /// <summary>
        /// Суммирование участков эпюр
        /// </summary>
        /// <param name="epureLine1"></param>
        /// <param name="epureLine2"></param>
        /// <returns></returns>
        public static EpureLine SumEpureLine(EpureLine epureLine1, EpureLine epureLine2)
        {
            EpureLine newEpureLine = new EpureLine()
            {
                Length       = epureLine1.Length,
                Rigidity     = epureLine1.Rigidity,
                StartPoint   = epureLine1.StartPoint,
                EndPoint     = epureLine1.EndPoint,
                StartMoment  = epureLine1.StartMoment + epureLine2.StartMoment,
                MiddleMoment = epureLine1.MiddleMoment + epureLine2.MiddleMoment,
                EndMoment    = epureLine1.EndMoment + epureLine2.EndMoment
            };

            return(newEpureLine);
        }
コード例 #7
0
ファイル: EpureLine.cs プロジェクト: nikolay199213/TestDxfWPF
 /// <summary>
 /// Перемножение участков эпюры методом Симпсона
 /// </summary>
 /// <param name="epure2"></param>
 /// <returns></returns>
 public static double MultiplicationEpureLine(EpureLine epure1, EpureLine epure2)
 {
     return((epure1.StartMoment * epure2.StartMoment + 4 * epure1.MiddleMoment * epure2.MiddleMoment +
             epure1.EndMoment * epure2.EndMoment) * epure1.Length / (6 * epure1.Rigidity));
 }