private static double GetCutY(SlopeData slp, SubgradeSection sec, CutMethod method, double value) { double cutY = 0; switch (method) { case CutMethod.从中心向外: if (slp.FillCut) { cutY = sec.GetYFromElev(slp.TopElevation - value); break; } else { cutY = sec.GetYFromElev(slp.BottomElevation + value); break; } case CutMethod.从坡底向上: cutY = sec.GetYFromElev(slp.BottomElevation + value); break; case CutMethod.从坡顶向下: cutY = sec.GetYFromElev(slp.TopElevation - value); break; default: // 按绝对标高 cutY = sec.GetYFromElev(value); break; } return(cutY); }