public EpureM(int length) { epureLines = new EpureLine[length]; for (int i = 0; i < length; i++) { epureLines[i] = new EpureLine(); } }
public EpureM(Line[] lines) { epureLines = new EpureLine[lines.Length]; for (int i = 0; i < lines.Length; i++) { epureLines[i] = new EpureLine(lines[i]); } }
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; }
/// <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); }
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); }
/// <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); }
/// <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)); }