private double CalcP(int currentAngle, DataPolitropsOfComprassionAndExpansion.Iterator iterBeg, DataPolitropsOfComprassionAndExpansion.Iterator iterEnd) { if (currentAngle < 180) { return(CalcPolitrops.KoefPa); } if (currentAngle >= 180 && currentAngle < 360) { return(CalcPolitrops.DataPolitrops.PressureOnLineCompression[iterEnd.next()]); } if (DataSpecificForces.Angles[DataSpecificForces.Angles.Count - 1] == 360 && DataSpecificForces.Angles[DataSpecificForces.Angles.Count - 2] != 360) // last record with 360 degree with pressure compression { return(CalcPolitrops.DataPolitrops.PressureOnLineCompression[iterEnd.next()]); } else if (DataSpecificForces.Angles[DataSpecificForces.Angles.Count - 1] == 360 && DataSpecificForces.Angles[DataSpecificForces.Angles.Count - 2] == 360) // add repeated record with 360 degree with pressure expansion { return(CalcPolitrops.DataPolitrops.PressureOnLineExpansion[iterBeg.next()]); } if (currentAngle > 360 && currentAngle <= 540) { return(CalcPolitrops.DataPolitrops.PressureOnLineExpansion[iterBeg.next()]); } if (currentAngle > 540) { return(CalcPolitrops.KoefPa); } return(0.0); }
private double CalcPForLamdaEqualOne(int deltaAngle, int currentAngle, DataPolitropsOfComprassionAndExpansion.Iterator iterEnd) { if (currentAngle < 180) { return(CalcPolitrops.KoefPa); } if (currentAngle >= 180 && currentAngle <= 360) { return(CalcPolitrops.DataPolitrops.PressureOnLineCompression[iterEnd.next()]); } else //обратный расчет)) { int indexOfRecordOn360Degree = 360 / deltaAngle; int offSet = (currentAngle - 360) / deltaAngle; return(this.DataSpecificForces.P[indexOfRecordOn360Degree - offSet]); } }