private static unsafe ProstokątNaObrazie ZnajdźSkrajnePunktuObrazu2(bool *Obraz, int x, int y, HashSet <ObiektNaMapie> tr)
        {
            ProstokątNaObrazie zwr = new ProstokątNaObrazie();

            {
                ObiektNaMapie PomocniczyObiekt = new ObiektNaMapie();
                foreach (var item in tr)
                {
                    SprawdźSkrajne(new Point(item.MinX, item.MinY), ref PomocniczyObiekt);
                    SprawdźSkrajne(new Point(item.MaxX, item.MaxY), ref PomocniczyObiekt);
                }
                zwr.Początek = new Point(PomocniczyObiekt.MinX, PomocniczyObiekt.MinY);
                zwr.Koniec   = new Point(PomocniczyObiekt.MaxX, PomocniczyObiekt.MaxY);
                List <Point> ListaOdległośi = new List <Point>();
                Point        Sierodek       = zwr.Początek.Dodaj(zwr.Koniec).Razy(0.5f);
                ListaOdległośi.Add(Sierodek);
                ListaOdległośi.Add(ZnajdźNajdalszyPunkt(zwr, Obraz, x, y, ListaOdległośi));
                ListaOdległośi.Add(ZnajdźNajdalszyPunkt(zwr, Obraz, x, y, ListaOdległośi));
                ListaOdległośi.Add(ZnajdźNajdalszyPunkt(zwr, Obraz, x, y, ListaOdległośi));
                ListaOdległośi.Add(ZnajdźNajdalszyPunkt(zwr, Obraz, x, y, ListaOdległośi));
                zwr.XNYN = ListaOdległośi[1];
                ListaOdległośi.RemoveRange(0, 2);
                int L = ZnajdźNajdalszyKąt(ListaOdległośi, zwr.XNYN, Sierodek);
                zwr.XPYP = ListaOdległośi[L];
                ListaOdległośi.RemoveAt(L);
                zwr.XNYP = ListaOdległośi[0];
                zwr.XPYN = ListaOdległośi[1];
            }
            zwr.Ustaw(new Size(x, y));
            return(zwr);
        }
        public static unsafe ProstokątNaObrazie KorektaHauga(Size Rozmiar, bool *Obraz, ProstokątNaObrazie pk)
        {
            Haug h = new Haug();
            ProstokątNaObrazie pr = new ProstokątNaObrazie();

            pr.XNYN = h.ZnajdźProstopadłe(Obraz, Rozmiar, ZnajdźObszarOtaczający(pk.XNYN, Rozmiar, pk.ŚredniaDłógośc()));
            pr.XNYP = h.ZnajdźProstopadłe(Obraz, Rozmiar, ZnajdźObszarOtaczający(pk.XNYP, Rozmiar, pk.ŚredniaDłógośc()));
            pr.XPYN = h.ZnajdźProstopadłe(Obraz, Rozmiar, ZnajdźObszarOtaczający(pk.XPYN, Rozmiar, pk.ŚredniaDłógośc()));
            pr.XPYP = h.ZnajdźProstopadłe(Obraz, Rozmiar, ZnajdźObszarOtaczający(pk.XPYP, Rozmiar, pk.ŚredniaDłógośc()));
            pr.Ustaw(Rozmiar);
            return(pr);
        }