コード例 #1
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        //高斯反算
        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];
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        //空间转大地
        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);
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        //高斯正反算结果导出
        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);
            }
        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        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;
        }
コード例 #5
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        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);
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        //导出曲率半径计算结果
        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);
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: mingkof/coordinate-trans
        //计算转换参数
        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;
            }
        }