private void btnstatisticEX_Click(object sender, EventArgs e)
        {
            double        dblProportion = -1;
            List <double> dbllt         = new List <double>();
            List <CPoint> CResultPtLt   = _DataRecords.ParameterResult.CResultPtLt;

            for (int i = 0; i <= 300; i++)
            {
                CPolyline cpl = CGeometricMethods.GetTargetcpl(CResultPtLt, dblProportion);
                dbllt.Add(cpl.pPolyline.Length);
                dblProportion = dblProportion + 0.01;
            }

            CHelperFunctionExcel.ExportDataltToExcel(dbllt, "Length", _DataRecords.ParameterInitialize.strSavePath);
        }
예제 #2
0
        public CParameterResult OptCorMMMorphing()
        {
            List <CPolyline> pBSCPlLt = _BSCPlLt;
            List <CPolyline> pSSCPlLt = _SSCPlLt;
            int    intMaxBackK        = _intMaxBackK;
            int    intMulti           = _intMulti;
            int    intIncrease        = _intIncrease;
            double dblSmallDis        = _dblSmallDis;

            long lngStartTime1 = System.Environment.TickCount;  //lngTime1

            CGeometricMethods.SetEdgeLength(ref pBSCPlLt);
            CGeometricMethods.SetEdgeLength(ref pSSCPlLt);
            long lngTime1 = System.Environment.TickCount - lngStartTime1;  //lngTime1

            double dblX             = pSSCPlLt[0].FrCpt.X - pBSCPlLt[0].FrCpt.X;
            double dblY             = pSSCPlLt[0].FrCpt.Y - pBSCPlLt[0].FrCpt.Y;
            CPoint StandardVetorCpt = new CPoint(0, dblX, dblY);

            //StandardVetorCpt = new CPoint(0, 0, 0);
            _StandardVetorCpt = StandardVetorCpt;
            double        dblStandardLength = CGeometricMethods.CalDis(0, 0, dblX, dblY);
            List <double> dblDistanceLt     = new List <double>(intMulti);
            List <double> dblTimeLt         = new List <double>(intMulti);

            List <LinkedList <CCorrespondCPoint> > pCorrCptLkLt = new List <LinkedList <CCorrespondCPoint> >(pBSCPlLt.Count);
            List <LinkedList <CCorrespondCPoint> > pCtrlCptLkLt = new List <LinkedList <CCorrespondCPoint> >(pBSCPlLt.Count);

            for (int i = 0; i < intMulti; i++)
            {
                long   lngStartTime2 = System.Environment.TickCount;                       //lngTime2
                double dblDistance   = 0;
                pCorrCptLkLt = new List <LinkedList <CCorrespondCPoint> >(pBSCPlLt.Count); //initialize
                pCtrlCptLkLt = new List <LinkedList <CCorrespondCPoint> >(pBSCPlLt.Count); //initialize
                for (int j = 0; j < pBSCPlLt.Count; j++)
                {
                    CTable[,] Table = CreatTable(pBSCPlLt[j], pSSCPlLt[j], intMaxBackK, StandardVetorCpt, dblSmallDis);  //创建T矩阵

                    dblDistance += Table[pBSCPlLt[j].cptlt.Count - 1, pSSCPlLt[j].cptlt.Count - 1].dblEvaluation;
                    LinkedList <CCorrespondCPoint> CtrlCptLk;
                    pCorrCptLkLt.Add(FindCorrespondSegmentLk(Table, out CtrlCptLk));
                    pCtrlCptLkLt.Add(CtrlCptLk);
                }
                long lngTime2 = System.Environment.TickCount - lngStartTime2;   //lngTime2
                dblTimeLt.Add(lngTime1 + lngTime2);
                dblDistanceLt.Add(dblDistance);


                //保存对应线
                CHelperFunctionExcel.ExportDataltToExcel(dblTimeLt, intMaxBackK + "Timelt0", _ParameterInitialize.strSavePath);
                CHelperFunctionExcel.ExportDataltToExcel(dblDistanceLt, intMaxBackK + "Distancelt0", _ParameterInitialize.strSavePath);

                if (i == (intMulti - 1))
                {
                    CHelperFunction.SaveCtrlLine(pCtrlCptLkLt, intMaxBackK + "OptCorMMControlLine", dblStandardLength, _ParameterInitialize.pWorkspace, _ParameterInitialize.m_mapControl);
                    CHelperFunction.SaveCorrLine(pCorrCptLkLt, intMaxBackK + "OptCorMMCorrLine", _ParameterInitialize.pWorkspace, _ParameterInitialize.m_mapControl);
                }
                intMaxBackK  = intMaxBackK + intIncrease;
                _CorrCptLkLt = pCorrCptLkLt;
            }

            return(null);
        }
 private void btnExportToExcel_Click(object sender, EventArgs e)
 {
     CHelperFunctionExcel.ExportEvaluationToExcelCorr(_DataRecords.ParameterResult, _DataRecords.ParameterInitialize.strSavePath);
 }
예제 #4
0
 private void btnExportToExcel_Click(object sender, EventArgs e)
 {
     CHelperFunctionExcel.ExportEvaluationToExcel(_DataRecords.ParameterResultToExcel, _DataRecords.ParameterInitialize, "0");
     CHelperFunctionExcel.KillExcel();
 }