Пример #1
0
        private static void ObszaryNaZdzieciaZPozycją(ref bool *c, Size SamLoto, bool *ObrazKopis, List <ZdjecieZPozycją> ListaZdjęć, out ZdjecieZPozycją Logo, bool UżywajZlepianiaRzutem)
        {
            Logo = null;
            int * MapaSpójnychObszarów;
            float NajbardzjeLogowaty = 0;

            List <WstepnePrzygotowanie.ObiektNaMapie> Obszary = WstepnePrzygotowanie.ZnajdźOpszary(ref c, SamLoto.Width, SamLoto.Height, out MapaSpójnychObszarów);

            foreach (var item in Obszary)
            {
                Rectangle       rl = new Rectangle(item.MinX, item.MinY, item.MaxX - item.MinX + 1, item.MaxY - item.MinY + 1);
                ZdjecieZPozycją z  = new ZdjecieZPozycją();
                z.Obszar        = rl;
                z.Moc           = item.Moc;
                z.ObiektNaMapie = item;
                z.ObliczPodobieństwo(c, SamLoto.Width, Sieć);
                //usóń w dalszej fazie i Usń też Kopie
                z.ObrazWBool = WstepnePrzygotowanie.PobierzObszar(ObrazKopis, z, SamLoto.Width, SamLoto.Height);
                if (SprawdźPoprawne(item))
                {
                    ListaZdjęć.Add(z);
                }
                float Logowatość = ObliczLogowatość(z);
                if (Logowatość > NajbardzjeLogowaty)
                {
                    NajbardzjeLogowaty = Logowatość;
                    Logo = z;
                }
            }
            WczytajParametry(Logo);
            if (UżywajZlepianiaRzutem)
            {
                ZlepianieLiterRzutami zlk = new ZlepianieLiterRzutami(ŚredniaSzerokość, ŚredniaWysokość);
                zlk.Zlepiaj(MapaSpójnychObszarów, Sieć, SamLoto, c, ListaZdjęć);
            }


            Marshal.FreeHGlobal((IntPtr)MapaSpójnychObszarów);
        }