示例#1
0
        private void 生成凸包_Click(object sender, EventArgs e)         //图形显示
        {
            if (g_point.Count == 0)
            {
                status.Text = "没有数据,无法生成凸包"; return;
            }
            if (convex_hull.Count == 0 && g_point.Count != 0)
            {
                生成凸包 create_c_h = new 利用构建规则格网_grid_进行体积计算.生成凸包(g_point);
                minmax = create_c_h.getminmax();                //得到数据中最大最小X,Y值


                //convex_hull = create_c_h.get_convex_hull();              //              Graham'sScan算法  得到凸包点
                convex_hull = create_c_h.conver_h1(g_point);                            //               快速凸包法        得到的凸包点
            }
            grid_spacing = float.Parse(网格间隔.Text);                                      //获得最新的网格间隔信息

            DRAW   draw = new DRAW();                                                   //定义画图类
            Bitmap bmp  = draw.get_picture(g_point, convex_hull, grid_spacing, minmax); //得到画布

            pictureBox1.BackgroundImage       = bmp;                                    //得到图片
            pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;
            panel1.Controls.Add(pictureBox1);                                           //放入容器

            pictureBox1.Width  = 650;                                                   //初始化图片的大小
            pictureBox1.Height = 400;
            panel1.BringToFront();
            status.Text = "生成凸包,并显示凸包";
        }
示例#2
0
        private void save_DXF_Click(object sender, EventArgs e)   //保存图形为.dxf文件
        {
            if (convex_hull.Count == 0)
            {
                MessageBox.Show("没有生成凸包!"); return;
            }
            SaveFileDialog svf = new SaveFileDialog();

            svf.Filter = "(*.dxf)|*.dxf";
            DialogResult ok_cancel = svf.ShowDialog();

            if (ok_cancel == DialogResult.OK)
            {
                string dxf_path = svf.FileName;
                DRAW   draw     = new DRAW();
                draw.save_dxf(dxf_path, g_point, convex_hull, minmax, grid_spacing);
                status.Text = "保存图像成功";
            }
        }