Example #1
0
        /// <summary>
        /// 显示并返回多个插值线段
        /// </summary>
        /// <param name="pDataRecords">数据记录</param>
        /// <param name="dblProp">差值参数</param>
        /// <returns>插值线段</returns>
        public static List <CPolyline> DisplayInterpolations(CDataRecords pDataRecords, double dblProp)
        {
            if (dblProp < 0 || dblProp > 1)
            {
                MessageBox.Show("请输入正确参数!");
                return(null);
            }
            List <List <CPoint> > CResultPtLtLt = pDataRecords.ParameterResult.CResultPtLtLt;

            List <CPolyline> cpllt = new List <CPolyline>();

            for (int i = 0; i < CResultPtLtLt.Count; i++)
            {
                CPolyline cpl = CGeoFunc.GetTargetcpl(CResultPtLtLt[i], dblProp);
                cpllt.Add(cpl);
            }


            // 清除绘画痕迹
            IMapControl4       m_mapControl = pDataRecords.ParameterInitialize.m_mapControl;
            IGraphicsContainer pGra         = m_mapControl.Map as IGraphicsContainer;

            pGra.DeleteAllElements();
            //m_mapControl.ActiveView.Refresh();   //由于在下一步“ViewPolyline”中有刷新的命令,此语句可省略
            ViewPolylines(m_mapControl, cpllt);  //显示生成的线段
            return(cpllt);
        }
        /// <summary>
        /// 显示并返回单个插值线段
        /// </summary>
        /// <param name="pDataRecords">数据记录</param>
        /// <param name="dblProp">差值参数</param>
        /// <returns>插值线段</returns>
        public static List <CPolyline> GetAndSaveInterpolation(CDataRecords pDataRecords, double dblProp)
        {
            if (dblProp < 0 || dblProp > 1)
            {
                MessageBox.Show("the parameter t is not acceptable!");
                return(null);
            }

            CMorphingBaseCpl pMorphingBaseCpl   = pDataRecords.ParameterResult.pMorphingBaseCpl;
            List <CPolyline> pInterpolatedCPlLt = pMorphingBaseCpl.GenerateInterpolatedCplLt(dblProp);

            CParameterInitialize pParameterInitialize = pDataRecords.ParameterInitialize;

            CHelpFunc.SaveCPlLt(pInterpolatedCPlLt, pParameterInitialize.strSaveFolderName + "____" + dblProp.ToString(),
                                pParameterInitialize.pWorkspace, pParameterInitialize.m_mapControl);

            return(pInterpolatedCPlLt);
        }
Example #3
0
        /// <summary>
        /// 显示并返回单个插值线段
        /// </summary>
        /// <param name="pDataRecords">数据记录</param>
        /// <param name="dblProp">差值参数</param>
        /// <returns>插值线段</returns>
        public static CPolyline DisplayInterpolation(CDataRecords pDataRecords, double dblProp)
        {
            if (dblProp < 0 || dblProp > 1)
            {
                MessageBox.Show("请输入正确参数!");
                return(null);
            }
            List <CPoint> CResultPtLt = pDataRecords.ParameterResult.CResultPtLt;
            CPolyline     cpl         = CGeoFunc.GetTargetcpl(CResultPtLt, dblProp);

            cpl.SetPolyline();
            // 清除绘画痕迹
            IMapControl4       m_mapControl = pDataRecords.ParameterInitialize.m_mapControl;
            IGraphicsContainer pGra         = m_mapControl.Map as IGraphicsContainer;

            pGra.DeleteAllElements();
            //m_mapControl.ActiveView.Refresh();   //由于在下一步“ViewPolyline”中有刷新的命令,此语句可省略
            ViewPolyline(m_mapControl, cpl);  //显示生成的线段
            return(cpl);
        }