Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }