/// <summary> /// 添加平曲线线元 /// </summary> /// <param name="type">线型(直线:0,直缓圆:1,圆缓直:2,圆弧:3)</param> /// <param name="K0">起始里程</param> /// <param name="A">起始方位角(弧度)</param> /// <param name="x0">起始北坐标</param> /// <param name="y0">起始东坐标</param> /// <param name="R">转弯半径</param> /// <param name="L">平曲线线元长</param> public void AddH_LE(int type, double K0, double A, double x0, double y0, double R, double L) { HK.AddHa(K0, L); K0 = HK.GetContinueK(K0); HCurve_LE hc = new HCurve_LE(type, K0, A, x0, y0, R, L); Horizontal.Add(hc); }
/// <summary> /// 添加平曲线交点信息 /// </summary> /// <param name="K">交点里程</param> /// <param name="X">交点X坐标</param> /// <param name="Y">交点Y坐标</param> /// <param name="A">方位角(弧度制)</param> /// <param name="alpha">转向角(弧度制),左偏为负,右偏为正</param> /// <param name="R">曲线半径</param> /// <param name="Ls">缓和曲线长度</param> public void AddJD(double K, double X, double Y, double A, double alpha, double Ls, double R) { HCurve_JD hc = new HCurve_JD(K, X, Y, A, alpha, Ls, R); JDs.Add(hc); JDs.ToLE(out Horizontal_LE LE); LEs.curves.Clear(); foreach (var hcle in LE.curves) { HCurve_LE le1 = new HCurve_LE(hcle.type, hcle.K0, hcle.azimuth, hcle.x0, hcle.y0, hcle.R, hcle.L); LEs.Add(le1); } }
/// <summary> /// 添加平曲线交点信息 /// </summary> /// <param name="K">交点里程</param> /// <param name="X">交点X坐标</param> /// <param name="Y">交点Y坐标</param> /// <param name="A">方位角(弧度制)</param> /// <param name="alpha">转向角(弧度制),左偏为负,右偏为正</param> /// <param name="R">曲线半径</param> /// <param name="Ls">缓和曲线长度</param> public void AddH_JD(double K, double X, double Y, double A, double alpha, double Ls, double R) { HCurve_JD hc = new HCurve_JD(K, X, Y, A, alpha, Ls, R); HorizontalJD.Add(hc); HorizontalJD.ToLE(out Horizontal_LE LE); Horizontal.curves.Clear(); foreach (var hcle in LE.curves) { HK.AddHa(hcle.K0, hcle.K1, hcle.L); double K0 = HK.GetContinueK(hcle.K0); HCurve_LE le1 = new HCurve_LE(hcle.type, K0, hcle.azimuth, hcle.x0, hcle.y0, hcle.R, hcle.L); Horizontal.Add(le1); } }