//高斯反算 private void button8_Click(object sender, EventArgs e) { gauss_positive_res.Clear(); gauss_negative_res.Clear(); dt2.Rows.Clear(); OpenFileDialog open = new OpenFileDialog(); open.Filter = "文本文件(*.txt)|*.txt"; open.ShowDialog(); if (open.FileName == "") { return; } FileOperate fo = new FileOperate(); List <double[]> data = fo.ReadFile(open.FileName); foreach (double[] ele in data) { DataRow new_row = dt2.NewRow(); new_row["y"] = ele[0]; new_row["x"] = ele[1]; dt2.Rows.Add(new_row); } foreach (DataRow row in dt2.Rows) { double[] LB_arr = gauss.gauss_negative((double)row["y"], (double)row["x"]); gauss_negative_res.Add(LB_arr); row["L"] = LB_arr[0]; row["B"] = LB_arr[1]; } }
//空间转大地 private void button2_Click(object sender, EventArgs e) { XYZBLH_res.Clear(); dt3.Rows.Clear(); OpenFileDialog open = new OpenFileDialog(); open.Filter = "文本文件(*.txt)|*.txt"; open.ShowDialog(); if (open.FileName == "") { return; } FileOperate fo = new FileOperate(); List <double[]> data = fo.ReadFile(open.FileName); foreach (double[] arr in data) { double[] temp = conv.sub_XYZ2BLH(arr); DataRow new_row = dt3.NewRow(); new_row["X"] = arr[0]; new_row["Y"] = arr[1]; new_row["Z"] = arr[2]; new_row["L"] = temp[0]; new_row["B"] = temp[1]; new_row["H"] = temp[2]; XYZBLH_res.Add(temp); dt3.Rows.Add(new_row); } }
//高斯正反算结果导出 private void button6_Click(object sender, EventArgs e) { FileOperate fo = new FileOperate(); SaveFileDialog save = new SaveFileDialog(); save.Filter = "文本文件(*.txt)|*.txt"; save.ShowDialog(); if (save.FileName == "") { return; } if (gauss_positive_res.Count == 0 && gauss_negative_res.Count == 0) { MessageBox.Show("请先进行计算!"); return; } else if (gauss_positive_res.Count != 0) { fo.ExportFile(save.FileName, gauss_positive_res); } else if (gauss_negative_res.Count != 0) { fo.ExportFile(save.FileName, gauss_negative_res); } }
private void button10_Click(object sender, EventArgs e) { dt4.Rows.Clear(); trans_res.Clear(); OpenFileDialog open = new OpenFileDialog(); open.Filter = "文本文件(*.txt)|*.txt"; open.ShowDialog(); if (open.FileName == "") { return; } FileOperate fo = new FileOperate(); List <double[]> data = fo.ReadFile(open.FileName); _347 tfs = new _347(); foreach (double[] arr in data) { //datagridview显示 DataRow new_row = dt4.NewRow(); switch (comboBox1.SelectedItem.ToString()) { case "四参数": new_row["X0"] = arr[0]; new_row["Y0"] = arr[1]; double[] four_res_arr = tfs.four_trans(arr, dX_box.Text, dY_box.Text, theata_box.Text, m_box.Text); new_row["X1"] = four_res_arr[0]; new_row["Y1"] = four_res_arr[1]; dt4.Rows.Add(new_row); trans_res.Add(four_res_arr); break; case "七参数": new_row["X0"] = arr[0]; new_row["Y0"] = arr[1]; new_row["Z0"] = arr[2]; double[] seven_res_arr = tfs.seven_trans(arr, Tx_box.Text, Ty_box.Text, Tz_box.Text, D_box.Text, Rx_box.Text, Ry_box.Text, Rz_box.Text); new_row["X1"] = seven_res_arr[0]; new_row["Y1"] = seven_res_arr[1]; new_row["Z1"] = seven_res_arr[2]; dt4.Rows.Add(new_row); trans_res.Add(seven_res_arr); break; case "三参数": new_row["X0"] = arr[0]; new_row["Y0"] = arr[1]; new_row["Z0"] = arr[2]; double[] three_res_arr = tfs.three_trans(arr, t_Dx_box.Text, t_Dy_box.Text, t_Dz_box.Text); new_row["X1"] = three_res_arr[0]; new_row["Y1"] = three_res_arr[1]; new_row["Z1"] = three_res_arr[2]; dt4.Rows.Add(new_row); trans_res.Add(three_res_arr); break; } } button11.Enabled = true; }
private void button11_Click(object sender, EventArgs e) { FileOperate fo = new FileOperate(); SaveFileDialog save = new SaveFileDialog(); save.Filter = "文本文件(*.txt)|*.txt"; save.ShowDialog(); if (save.FileName == "") { return; } fo.ExportFile(save.FileName, trans_res); }
//导出曲率半径计算结果 private void button5_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.Filter = "文本文件(*.txt)|*.txt"; save.ShowDialog(); if (save.FileName == "") { return; } FileOperate fo = new FileOperate(); fo.datagrid_ExportFile(save.FileName, dataGridView1, dt); }
//计算转换参数 private void button12_Click(object sender, EventArgs e) { dt4.Rows.Clear(); trans_res.Clear(); OpenFileDialog open = new OpenFileDialog(); open.Filter = "文本文件(*.txt)|*.txt"; open.ShowDialog(); if (open.FileName == "") { return; } FileOperate fo = new FileOperate(); List <double[]> data = fo.ReadFile(open.FileName); switch (comboBox1.SelectedItem.ToString()) { case "四参数": //分离源坐标系和目标坐标系的坐标 List <double[]> four_src = new List <double[]>(); List <double[]> four_dst = new List <double[]>(); foreach (double[] arr in data) { //datagridview显示 DataRow new_row = dt4.NewRow(); new_row["X0"] = arr[0]; new_row["Y0"] = arr[1]; new_row["X1"] = arr[2]; new_row["Y1"] = arr[3]; dt4.Rows.Add(new_row); double[] left = { arr[0], arr[1] }; double[] right = { arr[2], arr[3] }; four_src.Add(left); four_dst.Add(right); } _347 four_tfs = new _347(); double[] four_param_arr = four_tfs.four_solve(four_src, four_dst); dX_box.Text = four_param_arr[0].ToString(); dY_box.Text = four_param_arr[1].ToString(); theata_box.Text = four_param_arr[2].ToString(); m_box.Text = four_param_arr[3].ToString(); break; case "七参数": //分离源坐标系和目标坐标系的坐标 List <double[]> seven_src = new List <double[]>(); List <double[]> seven_dst = new List <double[]>(); foreach (double[] arr in data) { //datagridview显示 DataRow new_row = dt4.NewRow(); new_row["X0"] = arr[0]; new_row["Y0"] = arr[1]; new_row["Z0"] = arr[2]; new_row["X1"] = arr[3]; new_row["Y1"] = arr[4]; new_row["Z1"] = arr[5]; dt4.Rows.Add(new_row); double[] left = { arr[0], arr[1], arr[2] }; double[] right = { arr[3], arr[4], arr[5] }; seven_src.Add(left); seven_dst.Add(right); } _347 seven_tfs = new _347(); double[] seven_param_arr = seven_tfs.seven_solve(seven_src, seven_dst); Tx_box.Text = seven_param_arr[0].ToString(); Ty_box.Text = seven_param_arr[1].ToString(); Tz_box.Text = seven_param_arr[2].ToString(); Rx_box.Text = seven_param_arr[3].ToString(); Ry_box.Text = seven_param_arr[4].ToString(); Rz_box.Text = seven_param_arr[5].ToString(); D_box.Text = seven_param_arr[6].ToString(); break; case "三参数": //分离源坐标系和目标坐标系的坐标 List <double[]> three_src = new List <double[]>(); List <double[]> three_dst = new List <double[]>(); foreach (double[] arr in data) { //datagridview显示 DataRow new_row = dt4.NewRow(); new_row["X0"] = arr[0]; new_row["Y0"] = arr[1]; new_row["Z0"] = arr[2]; new_row["X1"] = arr[3]; new_row["Y1"] = arr[4]; new_row["Z1"] = arr[5]; dt4.Rows.Add(new_row); double[] left = { arr[0], arr[1], arr[2] }; double[] right = { arr[3], arr[4], arr[5] }; three_src.Add(left); three_dst.Add(right); } _347 three_tfs = new _347(); double[] three_param_arr = three_tfs.three_solve(three_src, three_dst); t_Dx_box.Text = three_param_arr[0].ToString(); t_Dy_box.Text = three_param_arr[1].ToString(); t_Dz_box.Text = three_param_arr[2].ToString(); break; } }