private void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelperFunction.OpenWorkspace(ParameterInitialize.strSavePath); //读取数据 try { _pOptCorSimplified = new COptCorSimplified(ParameterInitialize); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } _pOptCorSimplified.OptCorSimplifiedMorphing(); _DataRecords.ParameterResult = _pOptCorSimplified.ParameterResult; }
private void btnSaveInterpolation_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; List <CPolyline> cpllt = new List <CPolyline>(); cpllt.Add(_RelativeInterpolationCpl); string strFileName = _dblProportion.ToString(); CHelperFunction.SaveCPlLt(cpllt, strFileName, ParameterInitialize.pWorkspace, ParameterInitialize.m_mapControl); }
private void btnReduce_Click(object sender, EventArgs e) { try { _dblProportion = _dblProportion - 0.02; pbScale.Value = Convert.ToInt16(100 * _dblProportion); _RelativeInterpolationCplLt = CHelperFunction.GetAndSaveInterpolation(_DataRecords, _dblProportion); } catch (Exception) { MessageBox.Show("不能再减小了!"); } }
private void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelperFunction.OpenWorkspace(ParameterInitialize.strSavePath); _pOptCorMMSimplified = new COptCorMMSimplified(ParameterInitialize); _pOptCorMMSimplified.OptCorMMSimplifiedMorphing(); MessageBox.Show("Done!"); }
public COptCorSimplified(CParameterInitialize ParameterInitialize) { //获取当前选择的点要素图层 //大比例尺要素图层 IFeatureLayer pBSFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(ParameterInitialize.cboLargerScaleLayer.SelectedIndex); //小比例尺要素图层 IFeatureLayer pSSFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(ParameterInitialize.cboSmallerScaleLayer.SelectedIndex); ParameterInitialize.pBSFLayer = pBSFLayer; ParameterInitialize.pSSFLayer = pSSFLayer; ParameterInitialize.intMaxBackK = Convert.ToInt32(ParameterInitialize.txtMaxBackK.Text); _ParameterInitialize = ParameterInitialize; //获取线数组 List <CPolyline> _BSCPlLt = CHelperFunction.GetCPlLtByFeatureLayer(pBSFLayer); List <CPolyline> _SSCPlLt = CHelperFunction.GetCPlLtByFeatureLayer(pSSFLayer); _FromCpl = _BSCPlLt[0]; _ToCpl = _SSCPlLt[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 btn030_Click(object sender, EventArgs e) { _dblProportion = 0.3; _RelativeInterpolationCplLt = CHelperFunction.GetAndSaveInterpolation(_DataRecords, _dblProportion); }
private void btnAdd_Click(object sender, EventArgs e) { _dblProportion = _dblProportion + 0.02; pbScale.Value = Convert.ToInt16(100 * _dblProportion); _RelativeInterpolationCplLt = CHelperFunction.GetAndSaveInterpolation(_DataRecords, _dblProportion); }
private void btnInputedScale_Click(object sender, EventArgs e) { _dblProportion = Convert.ToDouble(this.txtProportion.Text); _RelativeInterpolationCplLt = CHelperFunction.GetAndSaveInterpolation(_DataRecords, _dblProportion); }
private void btn100_Click(object sender, EventArgs e) { _dblProportion = 1; _RelativeInterpolationCpl = CHelperFunction.DisplayInterpolation(_DataRecords, _dblProportion); }