示例#1
0
        private List <ZdjecieZPozycją> ZnajdźBliskoSiebie()
        {
            Graf <ZdjecieZPozycją> o = new Graf <ZdjecieZPozycją>();

            o.UstalWielkośćGrafu(ListaZZdjeciami.Count, ListaZZdjeciami.ToArray());
            for (int i = 0; i < ListaZZdjeciami.Count; i++)
            {
                for (int j = i + 1; j < ListaZZdjeciami.Count; j++)
                {
                    Rectangle a = ListaZZdjeciami[i].Obszar;
                    Rectangle b = ListaZZdjeciami[j].Obszar;
                    if (Matematyka.Styczność2Obiektów(a.Left, a.Right, b.Left, b.Right) > MaxymalnaDopuszczalnaOdległość || Matematyka.Podobność(a.Height, b.Height) > MinimalnePodobieństwoY)
                    {
                        o.PołączenieDwustrone(ListaZZdjeciami[i], ListaZZdjeciami[j]);
                    }
                }
            }

            int Najwieksze           = 0;
            List <ZdjecieZPozycją> z = null;

            foreach (List <ZdjecieZPozycją> item in o.ZnajdźObszary())
            {
                if (item.Count > Najwieksze)
                {
                    Najwieksze = item.Count;
                    z          = item;
                }
            }

            return(z);
        }
示例#2
0
 public static void ZmieńWielkośćIntami(this Graf <int> tb, int Wielkość)
 {
     int[] t = new int[Wielkość];
     for (int i = 0; i < Wielkość; i++)
     {
         t[i] = i;
     }
     tb.UstalWielkośćGrafu(Wielkość, t);
 }