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); }
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); }