Beispiel #1
0
        private void Button12_Click_1(object sender, EventArgs e)
        {
            try
            {
                Klass.CopyDots(Klass.Kls_to_List(gls), old_Dots);
                Fill_clr(clr);
                Random     rnd     = new Random();
                List <Dot> centers = new List <Dot>();
                Klass      none    = gls[0];
                foreach (Klass k in gls)
                {
                    if (k.name != "none")
                    {
                        Klass.AppendDots(k, gls[0]);
                    }
                }
                gls.Clear();
                gls.Add(none);
                Dots.Clear();
                Dots.AddRange(Klass.Kls_to_List(gls));

                if (graph_method.SelectedItem.ToString() == "Мин. остовное дерево (алгоритм Прима)")
                {
                    Rebro.Prim(Dots, bros, metric, Convert.ToInt32(klasters.Text));
                }
                if (graph_method.SelectedItem.ToString() == "Выделение связных компонент")
                {
                    Rebro.Build_from_R(Dots, bros, metric, Convert.ToInt32(Rbox.Text));
                }

                Klass.lab4(gls, bros);
                foreach (Klass k in gls)
                {
                    if (k.name != "none")
                    {
                        k.clr_name = clr[rnd.Next(0, clr.Count - 1)];
                        clr.Remove(k.clr_name);
                    }
                }
                RefreshScreen();
                RefreshAll();
            }
            catch { }
        }
Beispiel #2
0
        private void Button11_Click_1(object sender, EventArgs e)
        {
            try
            {
                Dots.Clear();
                Dots.AddRange(Klass.Kls_to_List(gls));
                if (graph_method.SelectedItem.ToString() == "Мин. остовное дерево (алгоритм Прима)")
                {
                    Rebro.Prim(Dots, bros, metric);
                }
                if (graph_method.SelectedItem.ToString() == "Выделение связных компонент")
                {
                    Rebro.Build_from_R(Dots, bros, metric, Convert.ToInt32(Rbox.Text));
                }

                RefreshScreen();
            }
            catch { }
        }
Beispiel #3
0
        private void Fill_chart()
        {
            chad.Series[0].Points.Clear();
            Dots.Clear();
            Dots.AddRange(Klass.Kls_to_List(gls));
            step_count.Clear();
            List <Rebro> tempbros = new List <Rebro>();

            Rebro.Build_full(Dots, tempbros, metric);
            for (int i = 0; i < chart_step.Count; i++)
            {
                double from, to;
                if (i == 0)
                {
                    from = 0;
                }
                else
                {
                    from = chart_step[i - 1];
                }
                to = chart_step[i];
                int count = 0;
                foreach (Rebro bro in tempbros)
                {
                    if (bro.mean > from && bro.mean <= to)
                    {
                        count++;
                    }
                }
                step_count.Add(count);
                chad.Series[0].Points.AddXY(to, count);
            }
            tempbros.Clear();
            if (r_auto.Checked)
            {
                Rbox.Text = Find_R().ToString();
            }
        }
Beispiel #4
0
 public DekstraAlgorim(Point[] pointsOfgrath, Rebro[] rebraOfgrath)
 {
     points = pointsOfgrath;
     rebra = rebraOfgrath;
 }
Beispiel #5
0
 static void Main(string[] args)
 {
     Point[] v = new Point[6];
     v[0] = new Point(0, false, "F");
     v[1] = new Point(9999, false, "A");
     v[2] = new Point(9999, false, "B");
     v[3] = new Point(9999, false, "C");
     v[4] = new Point(9999, false, "D");
     v[5] = new Point(9999, false, "E");
     Rebro[] rebras = new Rebro[10];
     rebras[0] = new Rebro(v[0], v[2], 8);
     rebras[1] = new Rebro(v[0], v[3], 4);//FC
     rebras[2] = new Rebro(v[0], v[1], 9);//FA
     rebras[3] = new Rebro(v[2], v[3], 7);//bc
     rebras[4] = new Rebro(v[2], v[5], 5);//be
     rebras[5] = new Rebro(v[3], v[5], 5);//ce
     rebras[6] = new Rebro(v[1], v[5], 6);//ae
     rebras[7] = new Rebro(v[1], v[4], 5);//ad
     rebras[8] = new Rebro(v[3], v[4], 4);//cd
     rebras[9] = new Rebro(v[2], v[4], 7);//bd
     DekstraAlgorim da = new DekstraAlgorim(v, rebras);
     da.AlgoritmRun(v[0]);
     List<string> b = PrintGrath.PrintAllMinPaths(da);
     for (int i = 0; i < b.Count; i++)
         Console.WriteLine(b[i]);
     Console.ReadKey(true);
 }